We're having problems when trying to deploy a number of projects which use zc.buildout - specifically we're finding that they want to put their PYTHON_EGG_CACHE directories all over the show. We'd like to somehow set this directory to one at the same level as the built-out project, where eggs can be found.
There is some mention online that this can be done for Plone projects, but is it possible to do this without Plone? 
Are there some recipes that can set up an environment variable so we can set the PYTHON_EGG_CACHE executable files in ./bin?
I'm not sure what you mean. Three options that you normally have:

Buildout, by default, stores the eggs in a directory called eggs/ inside your buildout directory.  
You can set the eggs-dir variable inside your buildout.cfg's [buildout] section to some directory. Just tell it where to place them.
You can also set that very same option in .buildout/defaults.cfg inside your home directory.  That way you can set a default for all your projects.  Handy for storing all your eggs in one place: that can save a lot of download time, for instance.

Does one of those (especially the last one) accomplish what you want?
And: don't muck around with eggs in the generated bin/* files.  Let buldout pick the eggs, that's its purpose.
Specify a custom PYTHON_EGG_CACHE dir with zc.buildout?