I'm assuming this is an XP/2k/Nt forum issue, so I'm going to move you there.
Are you able to boot through to Windows with that error?
Have you tried going to start>run and entering:
sfc /scannow
Or doing a File Search for it. You should have a c:\I386 directory which is a cabinet archive. Is it there.
If you cannot boot the system, you will need to follow the instructions for restoring it from the CD....
http://www.kellys-korner-xp.com/xp_haldll_missing.htm
If you've verified that the file is actually missing from that location and you have no other source for it, you can get it here:
http://www.dll-files.com/dllindex/dll-files.shtml?hal
... but if you can't boot the system and have a NTFS file system, I'm not sure how you would restore it that way. You will need to restore it from the CD or cabinet files.