Many of you folks probably attended the session at TechEd on building a single master image. There was a sample script in there about replacing the HAL. Based on that script and other knowledge gleened around the internet, I've created a BDD-compliant script that will replace the HAL.
Please see the script in the attached ZIP file.
To use the script, save it to the Scripts directory in the Distribution$ share, and then add it to the task sequence in the PostInstall phase (I have it nudged between the Configure and Install Drivers tasks).
The script will examine the HAL being used by Windows PE (which indicates if the chipset is PIC or APIC) as well as the number of processors installed (via WMI). Based on that information (along with whether the target system is 32-bit or 64-bit), it will update the Sysprep.inf file with the appropriate command (UpdateUPHAL or UpdateHAL) as well as copy over the correct HAL.DLL and NTOSKRNL.EXE images (so that mini-setup can boot).
Give it a whack and let me know if you have any issues.
I found an error in the script when it is run against a flat-file installation (i.e., when creating an image). I've posted an updated version of the script that should correct that error.