Here's what you can do too:
-clean out unnecessary crap that windows runs upon start.
Run->msconfig opens up a window that lets you configure a bunch of things. Services and Startup tabs would be the tabs with most relevance for speeding up a computer.
Do a little research on what services you need, and disable those you do not need. Don't disable things you don't know what they do though.
Do same with startup list of executables. Remove stuff like qttask (quicktime related crap), jusched (java update scheduler - you really don't need that to run at startup, java doesn't update that often and you can do it manually if you ever need to), google toolbar, office quick launch and other meaningless crap that just slows down the startup and doesn't really give a meaningful boost to the speed of starting these applications.
If you happen to disable some service that another service depends on, open
services.msc which lets you start and stop services as well as adjust their startup preference (automatic/manual/disabled). You can see services' dependancies from their properties.
-For cleaning out the registry, I recommend NOT using any automagical registry cleaning software. Instead, use fully manual
RegCleaner by Jouni Vuorio. Even though this software has excellent backup properties, I recommend only deleting entries that you absolutely certainly know are obsolete and unnecessary. It also allows you to adjust startup list and even gives you access to uninstall menu (which is the same as Add/Remove programs), but I prefer to do these tasks with Windows' own msconfig and Add/Remove programs tools.
-set the
menu delay smaller.

You'll be amazed at how much this improves the handling of Start menu, and other cascading menu's.