Charles had this to say at the end of his thoughts on storing only primary sources in CVS:
Another tip I've found to be useful: When you write your Ant build.xml, externalise all the configurable/system-dependent stuff into a build.properties file. Then add that file to .cvsignore and create a copy called build.properties-example that the user is expected to customise and rename. That way, when you have multiple developers on the project (or in my case, it was a single developer who switched regularly between Windows, OS X and Linux) , each developer can maintain a different build.properties, which won't be clobbered by CVS every time you integrate.
First, I like to store .jars in CVS if the project is so big that I don't want to have to recompile the whole freakin' thing everytime I do a clean check out. But in general, I'm with Charles, only the source goes in CVS.
Secondly, one of the guys at ATG I was working with this summer actually had a decent solution to the build.properties problems with big teams. The way the properties files were set up was: %ANT_USER%.properties, where you would add an environment variable to your computer called ANT_USER, then create a properties file with your name which would be read by the build.xml file. That way everyone could store their properties files on the CVS server without stepping on each other, yet if there was a need to re-checkout everything (sometimes I like to do that), you had no problems recreating your environment.