Here's the scenario: I'm re-installing 4 computers, and I don't want to do the following things manually 4 times:
- install Windows XP
- install all service packs
- install Windows updates
- install Firefox 3
- configure some Windows settings
If you have a Windows Server installation, you can use Remote Installation Services (RIS) to install pre-built Windows XP setups. It's basically a SysPrep-ed image that's been uploaded to a special share on the RIS server.
So, you use it by setting up one computer with all the software and settings required, then you run
Vista and above use a different technology called Windows Deployment Services (WDS).
 If you have a router that supports DHCP relay, you can instead set up DHCP requests for your client computers' subnet to be relayed to the RIS server's DHCP server.
Check out CloneZilla, looks like the right (and free) tool for what you are asking.
Just install once, image the drive (various tools available) and then use newsid to reset the SID of the final computer. We use this method for deploying virtual machines.
If you want to go the official Microsoft way, then install once, and use Sysprep before imaging the drive. Sysprep is the method companies such as Dell, HP, etc use for imaging new PCs.
Note that both methods above only are suggested for XP if the hardware is near-identical. You may have some success with hardware variations and XP, but generally it's recommended to keep a separate sysprep'd image for each variation. Vista is a lot more forgiving :)
Will you be doing this regularly? If so, Ghost is your friend. Build an image, ghost it, apply to numerous PCs. I can Ghost a loaded workstation is 10 minutes. So total downtime for a user is roughly 15 minutes to a reimaged machine.