I use installers for things I deem to be key packages (numpy, scipy, stuff like that) and use virtualenv and pip to set up project specific sets of packages. I really don't know what to do with egg files, I've never had to use one directly.
virtualenv really is the key to getting this working well.