We are planning to deploy many groups of workstations into a "hostile" environment (think public library, university common area, Internet cafe, etc.) which will have a particular system image that will need to be pushed to all of the systems in the group on a nightly basis. For example, machines are up and running all day with people using them, making changes, etc. Each night we want to re-image all of them back to a standard system image.
I know there are reset programs which can reset a system back to a given state, but we're leaning toward a re-imaging process so that we can change the standard image if needed and push it out and have all machines updated with the new image that night. These systems will be remote and at locations where on-site access for IT staff is limited and expensive. Each location will have a server associated with it which will act as a network gateway and firewall, so if the solution is centralized and can run on the server that would be ideal.
For the operating systems we're planning standalone Windows 7 workstations and a Linux or BSD variant server. Are there any options for pushing standalone Windows system images, automatically, from a Linux or BSD server?
You should REALLY look into the capabilities of Windows SteadyState, as it might negate your needs for reimaging. SteadyState can perform a rollback of your computer every time it reboots, so that all you need to do each night is to have a scheduled task restart your computers to bring the back to the fresh install. It works really well.
As for imaging: In windows server 2008 R2, you can install the WDS feature, which is a PXE-boot / image rollout solution. It is usually used in conjunction with a more advanced image deployment system (such as Microsoft Deployment Toolkit), but for a simple boot-from-network, deploy-standard image" scenario it will work well alone.
I know you've said that you are leaning toward an imaging solution, but honestly I think Windows SteadyState is an easier road to go down. It will make the management and maintenance of the machines a lot easier, IMHO. Whenever you need to build a new image, simply incorporate SteadyState into the image. SteadyState version 2.5 supports Windows Vista.
For a nightly reimaging solution, have a look at the open-source FOG. Based on PXE booting, it can push images out to a fleet of PCs rather quickly especially if you use distributed image servers. It can also deploy other images such as antivirus scans, memcheck86, etc. that run and do no damage to the already existing data.
It is geared towards Windows PCs and you can even install an optional Windows service that allows you to schedule reboots, change the PC name (needful for mass deployments), auto-join it to a domain, etc.