The problem you're encountering is a rather strange "bug" as part of SP3, particularly affected were the earlier builds as well as that version which was released for TechNet subscribers, in other words this affected users with SP3 build 3311 or 3244.
The problem occurs when SP3 installation did not successfully overwrite the GDI32.dll module and hence the boot sequence stops when it encounters an older version of the library file, which is not associated with SP3.
There's no reason to panic or to reformat the system. What you must do is to extract the new GDI32.dll from SP3 package and use it to replace the older version residing on your system.
You will find a detailed description of how to accomplish this -- at this website
** EDIT ** BTW, what's not mentioned on that site is how to extract the SP3 .exe for you to get the proper GDI library file.
To extract the SP3 .exe, simply select "run" from the start menu and type: D:\XPSP3\windowsxp-kb936929-sp3-x86-ENU.exe –x (substitute the drive letter and directory of where the SP3 .exe resides)
-- This will open a dialogue box asking where you wish to extract the files to, just type in a new directory name and the files will be extracted to that directory. You can then proceed with the rest of the instructions of that web page.
Either way, best practice would be to create a separate partition on the HDD and store user data on that partition as opposed to having/using one large partition for all your needs - in case of catastrophic failure. Keeping info organized on a computer is just as important as knowing how to use a computer.