Joel Spolsky's Guerrilla Guide to Interviewing contains a statement I wanted to comment on:
"An important thing to remember about interviewing is this: it is much better to reject a good candidate than to accept a bad candidate. A bad candidate will cost a lot of money and effort and waste other people's time fixing all their bugs. If you have any doubts whatsoever, No Hire."
I can accept that given the amount of competition for software jobs, some people will fall through the cracks. However, no one should be surprised if people who actually held software positions and were actually getting work done become discouraged and leave the field if they find themselves unable to pass these interviews. Since these interviews come fairly early in the evaluation process, there's nothing they can do to offset a poor performance that's not indicative of how well they'd actually do the job, such as using their references. (Although one could make the argument that references will generally say good things, so chances are you're not going to find many, if any weaknesses that way in candidates.)