In order to install PIL in a virtualenv on windows I ultimately ended up downloading the PIL windows installer, extracting the required files and placing them in the virtualenvs site packages directory.
This is what needs fixing! Pip with access to compiled windows binaries.
Install Pip on windows: http://stackoverflow.com/a/4921215
Virtualenv Win: https://github.com/davidmarble/virtualenvwrapper-win
That's the same issue really. Pip can't install (by design) binary distributions. Neither eggs nor .exes. So you are limited to easy_install on windows in many cases.
Edit: I think I should expand on the limitations of this. You can do this to any exe that was built with distutils, which you can check by changing the file extension to zip and seeing if it opens up.
http://nedbatchelder.com/blog/201007/installing_python_packa...
I followed though to the SO thread and discovered that you can install windows .exe installers using easy_install into virtualenvs. That is really usefull, its a shame that PyPi doesn't also link to the windows installers so that you wouldn't have to put the path to a windows initialler in.
--
Install windows binary packages into virtualenvs with easy_install - http://stackoverflow.com/a/5442340
You are using virtualenv, aren't you?