Hi!
No doubt from your searches you would have noticed that is becoming somewhat of an 'issue'
Intrestingly enough
this page says DirectX 9.0
b.
Also on that page it mentions that you will need to have the VB6 runtime files in order to run these checking tools.
I suggest a a quick look at this page since it has 2 checking tools on there that could possibly point to the specific problem.
Your problem is of course not quite run of the mill since it seems that your graphics card should be fine and that SP2 *may* be causing a problem.
Do other games work? If this is the only 3D game you have going, you may want to check that Direct3D and DirectDraw are enabled.
Double check by typing "dxdiag" in the run command, then checkout the Display tab. Whilst you are there have a look at the other tabs and press all of the test buttons. DXDiag also flags up any odd files it finds that may be causing a problem.
Did you by anychance have a Beta release of DirectX installed previously, at any point? This can cause a problem if you have.
You can try enabling the Cryptographic Services (Control Panel/Admin Tools/Services) and then run the 9.0c installer.
It certainly appears as though something is missing as you should get the good old Windows wizard that makes you click Next a zillion times and performs that rather long "inventory"
If none of this works then it looks like something is really corrupt in your XP installation.
If all else fails try the following (hey anything is worth a shot now!). You could wait 24hrs and see if anyone else replies in this thread with a better idea
(Ensure you have SP2 installation EXE around or you are prepared to download it again!)
Place the text below in a .bat (batch) file (e.g. paste it into a new notepad document and save it with e.g. the name fixme.bat. Make sure your file extension view is ON, otherwise your file may save as FixMe.Bat.Txt

)
Reboot your pc then run the batch file by double clicking on it.
The batch file will tell you when it is finished. I have left the credit in here since this guy deserves it. I was going to explain the manual method of doing this but scripting is so much easier
Start batch file:
--------------------8<----------------------
@echo off
:: Author: Torgeir Bakken
:: Date: 2004-08-30
:: Stop the Cryptographic service
%SystemRoot%\System32\net.exe stop CryptSvc
:: Rename all log files in the %SystemRoot%\Security folder
FOR %%a in (%SystemRoot%\Security\*.log) DO move /y %%a %%a.old
:: Rename the %SystemRoot%\System32\CatRoot2 folder
move /y %SystemRoot%\System32\CatRoot2 %SystemRoot%\System32\CatRoot2old
IF not exist %SystemRoot%\System32\CatRoot2 GOTO CONT01
:: In case the folder rename failed because of locked files
:: rename all log files in the %SystemRoot%\System32\CatRoot2 folder
FOR %%a in (%SystemRoot%\System32\CatRoot2\*.log) DO move /y %%a %%a.old
SET catroot2locked=True
:CONT01
cls
echo.
echo Please wait, this might take some time..
:: Unregister DLL files that are associated with Cryptographic Services
CD /D %SystemRoot%\System32
start /wait regsvr32.exe /s /u softpub.dll
start /wait regsvr32.exe /s /u wintrust.dll
start /wait regsvr32.exe /s /u initpki.dll
start /wait regsvr32.exe /s /u dssenh.dll
start /wait regsvr32.exe /s /u rsaenh.dll
start /wait regsvr32.exe /s /u gpkcsp.dll
start /wait regsvr32.exe /s /u sccbase.dll
start /wait regsvr32.exe /s /u slbcsp.dll
start /wait regsvr32.exe /s /u cryptdlg.dll
:: Reregister DLL files that are associated with Cryptographic Services
start /wait regsvr32.exe /s softpub.dll
start /wait regsvr32.exe /s wintrust.dll
start /wait regsvr32.exe /s initpki.dll
start /wait regsvr32.exe /s dssenh.dll
start /wait regsvr32.exe /s rsaenh.dll
start /wait regsvr32.exe /s gpkcsp.dll
start /wait regsvr32.exe /s sccbase.dll
start /wait regsvr32.exe /s slbcsp.dll
start /wait regsvr32.exe /s cryptdlg.dll
:: Configure and start the Cryptographic service
%SystemRoot%\system32\sc.exe config CryptSvc start= auto
:: Start the Cryptographic Service
%SystemRoot%\system32\net.exe start CryptSvc
cls
echo.
If "%catroot2locked%"=="True" GOTO CONT02
echo Finished, please reboot the computer and then try to install SP2 again.
.
GOTO END
:CONT02
echo Please run the batch file again with a newly restarted computer..
echo (but if it is newly restarted, just do a reboot and then try
echo to install SP2 again)..
GOTO END
:END
echo.
pause
--------------------8<----------------------