So a stupid question about virtualenv for you. Why does it default to full paths for everything?
checkout virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/en/latest/install.h...) as well for handling virtualenvs.
If your system gets updated/upgraded to the point where your virtualenv breaks, rebuild it from scratch; all it should take is a bit of time.
[edit: I am not a developer involved with virtualenv, and the statement about what it's intended for probably shouldn't be quite so strong, as this is only my impression of it and the way I use it.]