In a nutshell, the hal.dll file that Boot Camp uses (and all modern PC's) is the halaacpi.dll file, or an ACPI-enabled HAL. Parallels does not support ACPI, so in Parallels you have to tell it to use a different HAL.
First, copy the correct HAL from the driver cache:
copy C:\WINDOWS\Driver Cache\i386\hal.dll C:\WINDOWS\system32\halstdpc.dll
Then add the following line to C:\boot.ini, which will allow you to select an appropriate HAL at boot time:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Parallels Desktop" /noexecute=optin /fastdetect /hal=halstdpc.dll
When in Boot Camp, select Windows XP. When in Parallels, select Parallels Desktop. Of course, I'm pretty sure the special "Parallels Tools for Boot Camp" (which is not the same as the normal "Parallels Tools" and only supplements them - confusing as all hell, I know) will set all of this up "properly".