|Think about Loose Coupling|
Templates are part of the web application and get checked in (and I use Template Toolkit as well). Likewise, template plug-ins and instance scripts get checked in.
The 'non-application modules' are part of a system installation that we track using Red Hat RPMs. That's not easy, but I work with the SysAdmin and we keep that system in check.
Because we used a kind of Rapid Application Development approach without tests, we don't have any automated tests for the web application. Yes, I wish we did, and I hope to be able to use WWW:Mechanize to address that in the future.
I don't -- I use a combination of my development system and my test system to develop and test new versions of the web application.
I wrote an installer for the web application that's part of the checked in source. I extract a specific revision from the source control system, run the installer, answer a few questions, do a very small number of tweaks (they're on the ToDo list for the installer) and the system is ready for a smoke test (if this is for a Production system).
Once the smoke test passes, the system is passed on to the customer rep, who passes it on to the customer.
I'm not sure I understand your question; I'm the only developer for the web application, so I don't have to negotiate with anyone for a common file that we both want to work on. I can check files out of the source control system onto the test system for development, just because it's a more capable system than my own workstation for some configurations. That's not a big deal.
Hope that answers some of your questions.
Alex / talexb / Toronto
"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds