I’ve had this issue almost as many times as I’ve had the NTLDR issue. So I decided to be a great guy and explain how I fix(ed) it.
Here’s the error: Windows could not start because the following file is missing or corrupt: \system32\hal.dll. Please re-install a copy of the above file.
1.) Boot off your Windows XP Disk
2.) If you require a HD driver (if you use SATA for example) make sure you have a floppy of the SATA drivers handy – you will need it.
3.) After the setup finishes loading, press R for repair.
4.) A recovery console will appear, select the installation of Windows you want to repair (usually C:\Windows)
5.) Type in your administrator password. In most cases this is actually blank.
6.) Type BootCfg /Rebuild (this will take a while, select the option ALL).
7.) You will have to select a few options here if you have more than one Windows bootable drive. ALL usually works just fine.
8.) Enter Load Identifier shows up. Type in something you’ll remember (I usually type TESTing)
9.) Enter Operating System Load Options shows up. Type /fastdetect
10.) Type exit. You should be done.