I've got a budget of around 2k to upgrade our oldest file server. We currently have the following servers on the network:

File server 1 - this is the one to be replaced, it is a domain controller, file server and secondary DNS server. Most of its roles have now been moved to FS2.

File Server 2 - this is a reasonable spec machine, but now takes quite a hammering as it does most of the work. It is also the main domain controller and DNS / DHCP Server

Exchange server - this is fairly new and a good spec, can't see it needing upgrading anytime soon, other than a bit more ram. Runs exchange 2003.

SQL / SIMS server - as above, its a pretty good spec and should do the job for a few more years.

Terminal server 1 - Good spec, for pupil use

Terminal server 2 - ok spec, used for staff remote access

We're a primary school, and have around 180 client devices, and 400 pupils.

We intend to move the 2 file / domain servers to 2k8 as part of this upgrade - my plan is to install 2k8 onto the new server, join it to the domain, do all the domain upgrade stuff and then migrate all of file server 1's roles, and a lot of file server 2's roles onto it. Then either move the rest of server 2's stuff onto it temporarily while it gets upgraded, or just back up server 2 and upgrade it over a holiday.

I think its probably best to leave the sql and exchange servers as 2k3 for now, unless anyone can come up with a good reason not to?

The server I was looking at was a dell poweredge 2900 rack mount:

Quad core xeon E5405
4gb ram (will add more later, its a lot cheaper than buying it from Dell)
8 x 146gb 15k rpm SAS hdd, 7 drives in Raid 5 with hot spare
Dual Gigabit NIC's
Dual Power supplies

My only concern with having this 1 server doing most of the work is it becomes a single point of failure for the network. If I I use this to run vm's of the other key roles, is it simple a case of creating a backup of the VM every so often, and restoring this to another machine should this server fail? I imagine its a little more complicated than that! Also I believe it isnt good practice to run a domain controller in a VM? If so will this need its own physical server?

Thanks for any advice!