Fixed this problem today. Kellyn did a little research and found the solution. It turns out Hal.dll has nothing to do with Hal.dll but rather a corrupt or missing boot.ini file. The soution is:
1. Boot from your Windows XP CD.
2. Enter Recovery Console
3. Run “bootcfg /rebuild”.
4. Reboot and VoilÃ all is well.
There of course is the odd chance that your hal.dll file is actually corrupt. But as it was explained to me, the majority of the time. Hal.dll is just the first file that Windows looks for. Because of that it can mistake a missing boot.ini for a missing hal.dll.