Very interesting topic, and you could definitely get 'er done with what you list. I’d look at some slightly different tools:
* Windows Server 2008
I’d go R2 here unless you have a hard 32-bit dependency
* SQL Server 2008 (relatively small / low traffic DB, wasn't worth devoting a separate VM in dev)
For development purposes, I generally use SQL Express of the same version as the app will run on. For QA purposes, I try and make sure the environment matches largely. IE, if SQL is on a separate box, then you should make the QA SQL on a separate VM. There are bugs [configuration issues mainly] that don’t expose themselves until talking across the wire. DTC, I am looking at you.
* VisualSVN for hosting source code (just easier to manage on Windows),
VisualSVN is a solid choice, but if I were starting clean today, I’d consider more modern SCM systems – SVN is great but is largely rooted in the thinking of the last century. Which is a really long-winded way of saying check out Mercurial or Git. Mercurial is actually not too hard to get running on Windows and IIS7. And the client support is better than Git. Now, I would take a long look at Git, especially if I was a small shop looking at cloudsourcing my infrastructure.
* Trac hooked into VisualSVN for wiki/bugs/tracking
Decent enough choice, though I would note everyone I know who uses it hates it. Then again, find a bug tracker a developer likes these days . . .
* NAnt for automatic builds / running unit tests
NAnt doesn’t really automate anything, it lets you automate stuff. Anyhow, its a good choice, but I think MsBuild is perhaps better choice (no 3rd party dependencies, can do most things NAnt does, just as much obtuse XML to write). And some of the newer, powershell based build tools might be even better in a future looking sort of way.
* FxCop (potentially) as another set of tests from CruiseControl to check framework best practices
Not a bad idea.
* CruiseControl.NET for continuous integration, to automatically call the NAnt build and run NUnit / FxCop tests when new source is committed.
I’d really take a hard look at TeamCity over CCNET. It is so, so much better on so many levels. Setup and configuration is measured in minutes, not days. New project setup measured in minutes, not hours. Very little care and feeding required overall. Bonus of being readable enough to show to management. Nevermind the Visual Studio, pre-tested commit plugin.
* VS 2010
* NUnit
* CSLA (potentially) to use in developing our business logic layer
* NHibernate or Entity Framework (potentially) help facilitate OR/M
This list pretty much makes sense. These days, with code-first EF and fluent NH, you can ditch CSLA.
I’d add Resharper or TestDriven.NET if you want to use NUnit tests from within Visual Studio. Resharper has lots of added benefits beyond test running.
Hope this helps.