I had this problem this morning and discovered that the problem was with how I had arranged my disk. I use UBCD4 along with a custom set of 3 different operating systems so the setup files for a given installation are actually located in %CDDRIVE%\Setupfiles\WinXP, %CDDRIVE%\Setupfiles\WinOEM, and %CDDRIVE%\Setupfiles\WinLITE.

Consequently, OEM is located in %CDDRIVE%\Setupfiles\WinXP\OEM and while PreSetup.cmd only looks in %CDDRIVE%\OEM. It was an easy fix once i noticed this; I just replaced the reference in PreSetup.cmd to reflect the actual location of the OEM folder. Now the correct files are extracted to %SystemDrive% and all runs smoothly.

If your doing anything creative with your directories just make sure to update this. IE: You don't like have $OEM$ and OEM so you copied everything into %OEM%. If you did this, update PreSetup.cmd to:

............

REM +==========================================================================+
REM |   Finding CD/DVD driveletter.                                            |
REM |--------------------------------------------------------------------------|
FOR %%i IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\CD.TXT SET CDROM=%%i:
SET CDDRIVE=%cdrom%\$OEM$

............

This requires you to create a blank file CD.TXT in the root of your drive but I expect many of you will already have this to help when installing via RunOnceEx.

What I have done is update the original %CDDRIVE% variable to now refer to the root of the folder that holds the OEM directory DPs_BASE created. By changing the %CDDRIVE% variable I was able to avoid changing the rest of the references to the OEM folder in PreSetup.cmd

Hope this helps...