Using parted magic (available on UBCD5.0beta12) you can mount the hard drive and access the windows partition, and copy over a new hal.dll. It should work after copying over the new, but make sure its the same one as the service pack and windows you are running.
Normally, when you have a corruption of a system file (in your case hal.dll), it means your HD has disc errors, so it is recommended that you run the corresponding HD tool on UBCD that is the same brand as the HD you have (for instance, if you have a seagate, run the latest seagate tool). The tools come with disc checking software and should be able to check and repair the disc. Do this before copying over the necessary file(s).
_________________
~Just StopSpazzing~
Visit the UBCD Wiki:
http://wiki.ultimatebootcd.comPlease check your
UBCD ISO
MD5 Hash Sum; May prevent issues later on by not having an exact copy.
Currently Working on
Common Issues and Repair Tips on the Wiki.