I've gotten all of my jobs as #3, but one company in particular I worked for did primarily #1, and when they had to lay off a few hundred folks, most were supplying #2 pretty quickly.
The key detail is that interview. It seems everybody has that one interview horror story or six, because that's usually the first time a candidate has to actually show that what the employer read on their resume is actually what they provide. Note that I refer to what was read, rather than what was written. You might think your resume says you're a Linux kernel guru with a decent bit of shell scripting knowledge, but to someone looking to hire a Perl programmer, you look like a scripting guy who spent time as a sysadmin. It's then very likely that your interview will show that you're not as quick with the Perl as they were expecting, and you'll wonder why the interviewer spent so much time on those ridiculous scripting questions.
An internship is a several-month interview, where the employee knows they're getting the shitty jobs at shitty pay. Expectations are low, but it's easy to exceed them and be one of the regular team before the internship's end. Of course, by that time you already know the project and the company, so the company's cost to hire you is significantly reduced, as well.
Similarly, hiring from other companies reduces the risk of hiring someone. They were good enough for the competition, and it's not their fault they're looking for a new job, so they'll likely be good for us, too. Half of the interview is already done, just because they already have a job.
Of course, your technical skill is only half of that interview. The other major factor is whether you're a good fit for the company. I've been at companies that wanted aggressive personalities, hoping the drive to be the best would carry their product for the ride. I've also worked at places where you could get away with pretty much anything, as long as you were always smiling in front of the customers. My current job takes all kinds (and keeps them - I've seen one person actually fired in the last two years), but the ones who stay late and help push for deadlines are the ones who get the most respect.
I can easily picture a half-million IT jobs in the US. I'd expect that very, very few of them are actually a good fit for any particular candidate.