I am not sure I understand what you are trying to do. We use CVS where I work, and we make build scripts for all of our products. The build scripts basically checkout any necessary source code from CVS, and copy them to appropriate locations. A build script sorta like this:
rm -rf /path/to/development/projectA
rm -rf /path/to/development/projectB
rm -rf /usr/lib/libsUsedInProjects
cvs checkout projectA
rm -rf ./projectA/CVS # delete CVS dir
mv ./projectA/ /path/to/development/
cvs checkout projectB
rm -rf ./projectB/CVS # delete CVS dir
mv ./projectB/ /path/to/development/
cvs checkout projectLibs
rm -rf ./projectLibs/CVS # delete CVS dir
mv ./projectLibs/* /usr/lib/
Why is it that you do not want to have to checkout a copy of moduleA to test moduleB? Why would you want to utilize the "marked-up" copy in the repository?
Jeremy