When I teach new developers, I usually talk to them explaining what needs to be done, giving some pointers etc., after which I let them do it themselves, but being available at any moment. If I notice that they might have a problem then I ask if they need help or have a question.
The best way to learn is by trying to solve the problem yourself, while being able to easily ask when you need, instead of getting instructions as you type (which would be the case of teaching by pair programming). At least that is if we are talking about potentially good developers (I suspect those of less natural abilities might prefer when someone tells them which key to press).
As for “weeding people”, pair programming can hide a problem, especially when it is done on 100% basis. I suspect this is why some really like this idea of 100% :)
