It won't work like that.
It sounds like it's doing what you want in terms of not loading explorer, but it's not loading Winamp. It's not loading winamp because whaen you install a program it's files are registered and referenced in a specific location (C:/program files/winamp/ or similar in this case)
Install Winamp with it's installer to "C:\windows" instead of the default program files location, and all will work well. Except for re-starting the explorer shell, which for some reason seems open an explorer window without restarting the shell itself.
So, let us pretend you don't have Winamp installed at all for a moment, and start again from the beginning...
Freshly install Winamp to "C:\windows" using the winamp installer
open regedit.exe, and browse to the key HKLM\software\microsoft\windowsnt\currentversion\winlogon
Change the value of "shell" to "winamp.exe". That's all there is to it, unless you are having problems with restoring the shell when you want to.
I found that starting Explorer.exe didn't restart the shell untill the shell value was changed back to explorer.exe. This is a little bit of a pain in the backside to be doing all the time, and so what is required it to export the winlogon registry key (right click on the winlogon folder in regedit and select export), and save it as whatever you like in the windows directory. Then right click and edit that key, changing "winamp.exe" to "explorer.exe" on the shell value, and saving as a different file name.
Double clicking on either of these files will modify the shell key in the registry to one way or the other, and because they were saved to the windows directory, you can start them from File -> run in task manager by typing their names in full (eg, type winamp.reg). You are then prompted to allow the information to be entered to the registry or not, where you can select yes or no. This however doesn't start explorer, and so after changing the shell value back to explorer.exe, you need to go back to file -> run on task manager and start explorer, which should then start the whole shell.
This in theory can be reduced even further to one action on your part instead of two by writing a batch script in the windows directory that first restores the shell value to explorer, and then evokes explorer itself. If you want to do that and don't know how, just ask.
The alternative that will allow you to run an application at startup as a serivice so that it will load before the explorer shell is loaded is to use "SRVANY" from Microsofts NT Resource Kit (
instructions here) This would have the advantage of allowing you to open as many apps as you like before the shell, and in this situation, wou would simply leave the shell registry value blank instead of changing it. There may be other ways of doing it, but I personally don't know what they would be.
I'm using XP Pro SP2, and I've tested this on my machine so I know it works. If any of the above doesn't make sense to you, just let us know.