Ever since I started teaching at U of T, I've tried to help students I know find interesting jobs with local companies. I enjoy doing it, but there's a downside: several times each term, I get mail out of the blue from someone I've never heard of saying something like, "Hi, I hear you have really good contacts in industry, here's my resume, can you find me something too?" If they're still young, I send something like this back:
Hi, and thanks for your mail. I'm glad you are keen to get some real-world experience, but I can't recommend you to a company in good faith until I actually know something about the quality of your work. One way to show me what you're capable of is to do well in one of my courses, but a better way is to join to one of the open source projects I'm involved in. You might not feel you know enough right now to do that, but there are always lots of entry-level tasks that newcomers can tackle, and lots of more experienced developers to help you learn the ropes. If you'd like to give it a try, please let me know.
If they're older, though, I just point them at the Career Centre and wish them luck. I think that by the time someone is in grad school, it's fair to expect them to understand that a personal recommendation is supposed to be exactly that---personal---and that asking me to provide one that isn't is unfair.
Just wanted to get that off my chest...
Later: in response to an emailed question, yes, I treat companies differently too. The first time a young/small company contacts me looking for students to hire, I'm usually happy to hook 'em up. If a larger or more established company contacts me, I'll hook them up, but will also mention that we're always looking for support for undergrad projects. If they're willing to step up, great; if all they want is a recruiting channel where they don't have to pay headhunter fees, sorry, that's not my job. And if the company that contacts me is a headhunter, the answer is always, "I'd be happy to help your client: please have them contact me directly."