It's all the graduates fault right?
You expect people taking non-vocational courses to have vocational skills? How about *gasp* on the job training? Rather than moan about the lack of skills people have, you could do something about it.
There's nothing more depressing for a graduate web developer to be faced with the following list of 'essential' skills: HTML, CSS, Javascript, JQuery, Flash, PHP, ASP, c#, SQL, active directory, Linux, Exchange, active directory. That's for a junior position (2 years minimum experience needed naturally).
Chances are, several of those won't be used and will barely be used, the rest can be picked up fairly quickly if you've a decent set of base skills. However, requiring someone to be skilled at all of those before they start is stupid (unless you're offering a high paid position).
Advertise that same position with the bare minimum base skills (markup stuff + the main language they'll use), you'll get 3 times the number of applicants to choose from and you'll find it far easier to find someone not only willing to learn, but willing to do the job for £5-8K a year less than what you'd pay an experienced coder.
Plenty of workplaces are perfectly willing to employ people with a minimal knowledge of Office and train them up, a car garage wouldn't expect someone just out of college to have a huge wealth of knowledge. Why, when it comes to the 'pure' IT roles is there such an unwillingness to provide the training? It can take 3-6 months for someone to gain decent Excel and word skills, why is it so much more unreasonable to allow 3-6 months for a Java programmer to pick up C skills?