Here is my response to a colleague when he asked about our imaging procedure:
We use Windows Deployment Services. It's a role in Windows Server. Using the Windows Automated Installation Kit, you create an answer file which allows an unattended install. Our procedure is based on this guide. We also include scripts to install Sophos Antivirus and the Deepfreeze seed. Neither can be included in the base image because each instance needs to be unique for communicating to their respective consoles.
A driver pool is necessary. This is a collection of all relevant drivers from each model of PC you are deploying to.
Features I like:
It is hardware independent which allows us to only maintain a few images for many different hardware types.
Deploying the image automatically joins it to the domain
If you use a Virtual Machine to create the deployment image it's easy to update with any changes in the future.
Features I do not like:
Cannot automatically deploy to a computer lab. There may be a way to do this, but we have not looked into it yet. We have to boot each PC from the network and choose the correct deployment image.
Sometimes a new model of PC will have a new NIC or disk controller whose driver is not included in the boot image. Isolating the correct driver and inserting it into the boot image can be difficult and tedious. As long as you make a backup of the boot image before making any changes you leave yourself a safety net and it's not too bad.
Some hardware requires more than just a driver to work. Finger print readers on Thinkpads have given us this trouble. You either need to include the software suite in the deployment image which goes to all machines, install it manually on each Thinkpad or not install it at all.
I think WDS is an excellent solution for Faculty / Staff PCs and situation where you do not need to update large quantities of PCs at once. For a classroom or lab Ghost or other static image management might work better.