At our school the computing dept. uses a combination of Ghost (multicast sometimes) and PC Rdist to keep the machines free of all user installed files and to keep them clones of a master image.
With Win98 it wasn't as big of an issue, but with Win2k and XP you pretty much must create one Ghost image for each type of machine you have. I.E. if you have 20 Dell Optiplex GX240s and 50 mom and pop built PCs of roughly the same hardware you will create one Ghost image for the Dells and one for the clones.
Once you image all the workstations you then have to worry about how to maintain them. That's where PC Rdist (or several other packages) come into the picture. What PC RDist uses is a config file that tells it to ignore certain unique files/registry entries like the ones where your IP address, SID, Windows SN, etc. are stored. Then, it will delete every file that does not exist on the "master" image stored on a network accessible server somewhere. It will also copy down and/or make changes to the registry for any software that was deleted from the local workstation. You can tell PC Rdist to run on certain time intervals or after every reboot, or both.
Ghost is pretty easy to setup, PC Rdist is a pain to setup. But once everything's working you can easily have a small staff maintain several thousand PCs of different types in different labs...If you're a smaller college or high school then perhaps just ghosting the machines once a week or so would be enough to kill most of the problems.
Gaidin