I had a similar one with a client`s machine a couple of weeks ago and the infection replaced a specific driver in the system32 folder and corresponding dll folder - hence, as you suggest it won`t boot normally only into safe mode.
I`d first try booting from an XP disc and entering recovery console. Get to a command prompt and try the following commands:
In that order and see after each one if you can get into normal mode. click here for info on these commands.
This may not work and unless you can get some idea of which driver was replaced (Check date stamps perhaps) and copy that from a working XP system onto yours using a linux distro perhaps, a repair install of XP looks to be the solution.