Rich, allow me to clarify this a bit more.
We have a source control server. This uses svn and the tortoise client. All developer have access to this repository.
We have a build server. What basically happens if I have a new developer:
They get login info to source. They then get latest (checkout) form svn to their local machine. We have all of them mimic their dev environment to match the source control naming. THey then setup IIS accordingly. THey also use our web.config.default to create their own which has all our settings the same. Each sets up their own database as well.
Now, from this point forward a newbie is treated the same so:
Make changes on local dev. Checkin changes. Our build server then gets the latest after a waiting period then attempts to build dnn (or a module if that was checked in). The build server then works w/ draconet to fire off emails saying whether the build was good or bad. We then require all devs to make sure it builds prior to calling it a day.
Now, we are at the point of pushing to production. Since everyone is using the same source, and we require proper dnn dev for everyting (meaning keeping sqldataproviders up to date, version increasing accordingly), we then use our nant script (even in 2.0, we hooked nant into MSBuild) which then packages the module for distribution (install/source versions). The dev (in most cases me as project manager) takes the newly built install zip and installs into our staging site or production site. (We require everyting to be on a staging server first, which is a mimic of our source dnn install without the modules we build, then we test here. After it passes our checklist, we then push to production).