"Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\hal.dll.
Please re-install a copy of the above file."
If that doesn't work...
You can download another hal.dll file from here.
Then put that on a usb drive and boot up an Ubuntu live cd. Mount the internal hard drive in Linux
Copy the hal.dll file to C:\Windows\System32\
Take the Linux cd out and then boot into Windows.