It happens because the boot.ini file
that tells the boot where to look for 'Windows' is corrupted, so it is
looking for files in the wrong place - hal.dll just happens to be the
first one it looks for. Set the BIOS to boot CD before Hard Disk. Boot
the XP CD and, instead of Setup, take the immediate R for Repair.
Assume any password requested is blank, and TAB over.
Attrib -H -R -S C:\boot,ini
to delete the bad one
to search for Windows installations and make a new one