The way I believe RPM works is that it installs the files on your system based on your make install settings from your makefile. The files that it includes in your binary package are specified in the %files section of your spec file. Did you have a chance to read:
http://www.rpm.org/max-rpm/ch-rpm-basics.html
I think they way to do what you are trying to do is to leave the default directory structure and create a spec file in /usr/src/redhat/SPEC leaving the %prep, %build, %install sections blank and specify the files you want to install in your %files section on the build machine. (I'm assuming in your post you have a bunch of libraries already installed on your build machine that you would like to install on your target machine. I'm kinda confused here??) Then, on your target machine you could setup links as part of a preinstall process that maps foo/build directories to the directories on your target machine (You can write a preinstall script as part of the RPM package that will do this). For example, on your target machine:
ln -s /usr/bin foo/build/bin
ln -s /usr/lib/foo foo/build/lib
When the binary RPM is installed on your target system it should install the files in the appropriate places. Never tried it. Seems like it would work in theory. Ultimately, I don't think you need RPM for this unless your just trying to keep track of stuff you installed on your target machine. A tar file would suffice with the link strategy I'm describing above. Hope this helps....
BTW. I believe changing the default build directories on your target machine (in your case /usr/source/redhat) involves modifying the /usr/lib/rpm/macros or /usr/lib/rpm/rpmrc files which specify the GLOBAL default system settings. You likewise can add a ~/.rprmc file in your home directory for your own private settings. Give 'er a look...