MC of course being #1.
A friend of mine found this today:
Startup Delayer.
Basically it takes over your startup items and lets you set delays for when they start. For instance, I have it set so that HP and Java update services don't start up until 10 minutes after I log in. Other apps that run at start up (uTorrent, Steam client, Logitech SetPoint, etc) I have set for 30 second increments. Now that everything isn't all trying to start up at the same time, my PC logs in and is ready to fly much sooner.
At work I timed how long it took for my Vista PC, from a powered off state, to boot up and let me fire up Dreamweaver CS3 and actually open a file. It took a little over 3 minutes. After I installed this program and set delays for everything, it was down to a minute and a half. It works really well. The cool thing is it has a graphical mode, so that when you log in, you actually get this little toolbar like window that shows you the countdown to when the next startup app is going to fire. I used it to watch my timings and determine if something could be fired off a little sooner based on when the items before it finished and how much dead time there was between. From this graphical view you can also override it and manually kick off the next item if you want. And if you don't want the graphical mode at all, you can run it invisible.