I will only take a contract position if that's the only way I can get a job doing something I know academically -- I studied the technology and did a side project -- but don't have any on the job experience.
I agree. Good ones always have good options. I avoid contract to hire, because even a talented developer who chooses to stay as contractor will avoid contract-to-hire positions.
I guess you just have to go with who you think is the best candidate, and if the decision turns out to be incorrect, fire quickly.
I'm not a world class developer, but I'm a good one, maybe great depending on the day but I had 3 offers to be contract to hire and I refused.
You may save yourself a bad hire, but more than likely you will do so at the cost of missing out on hiring a handful of good ones.
If I'm interviewing with you and you don't trust me enough to make me an employee from day one then why should I trust you as a company?