The length of time it takes for Windows to be "usable" is mainly determined by the number of items that are set to load with Windows. Startup time can therefore be improved by keeping an eye on this ever-growing list. Many programs you install (or have been pre-installed) often puts one of it's components in the Registry to start with Windows when in fact it's not essential to have them start with Windows at all.
Download/install & run "Startup Control Panel" and go through each tab to see which startup items you don't need. Set them to "Disable" and re-start Windows. This will often be a case of trial-and -error if you don't know which items are essential, but you can easily re-enable any with Startup Control Panel if you get an error message whilst using Windows.
Free 'Startup Control Panel' here: http://www.mlin.net/StartupCPL.shtml
Bear in mind it is not for Windows Vista (which has it's own built-in startup manager).