I find when something like that occurs it can be down to a few reasons:
At start-up you might have alot of programs being started to put in your system's tray. Some people take very little interest in the amount of programs that run there, but for each program that's loaded there, a little piece of memory is eaten up and reserved for the program.
If you don't have much RAM then you can slow down your system considerably.
When Multiple processes are accessed at the same time (which sometimes happens during a load) some processors get their numbers a little mixed up, which can cause errors between parts of the OS system and the programs that are being loaded.
Lastly, if you have DEFECTIVE RAM it can cause CRC problems (basically the way the RAM interprets information, compresses it and assigns it an area.) When you have such Defective RAM you can end up with the system trying to write pieces of program over certain pieces that are in use by the operating system. (This is what cause the Blue Screens of Death).
Heres what I would do to try and fix your situation:
Goto the website
http://www.mlin.net and download the
Startup CPL (Control Panel). This will load a Startup icon in your Control panel, and allow you to turn those programs on and off that load at startup.
(It can be very useful for freeing up RAM and turning off Spyware that you didn't know was installed)
You can try to get hold of programs like
Cacheman, but messing around with some of your internal settings can cause more problems than good.
You should find on the internet programs that can be used to test your RAM. This is a good idea if you want to see if your RAM's gone bad.
(If you ever replace RAM, I suggest replacing All your RAM not just adding a chunk to your existing one. I say this because I once realised that if one Chunk was made in a Factory in Korea, and another chunk was made in a Factory in the US, they would both have different Carbon alignments [Due to polar positioning] that might cause small errors.)