Over time lots of naughty programmes get themselves an entry in the start up list - this can seriously slow down starting up.
Run msconfig - look at the start up tab and uncheck most of it - my list is 20 entries long with only the first 5 checked to load and run at start time.
Slow running as opposed to slow start up may be an application or process hogging CPU time. Use Task Manager or a free utility called Process Explorer to see what's happening. Sometimes a rogue process is waiting for something to happen that is not happening - this can cause the machine to "hang" most of the time. You can sometimes recover from this by returning to a "restore point" of a time before the problem began.
Consider downloading a free utility like Spybot - run a scan and fix any problems found by clicking on "fix selected problems". Spybot will also protect your start up list.
Peccavi
June 2011