I found that my machine was suddenly taking an inordinate amount of time to log in. There was nothing obviously wrong so I started to look around the web for suggestions. After a lot of hunting around I came across a Microsoft tool called Bootvis. Bootvis allows you to visualize the time taken by different bits of Windows as it boots. Unfortunately Microsoft no longer distributes Bootvis but you can still get a copy from Softpedia.
To cut a long story short I eventually traced the problem to some network shares that I had recently mapped to drive letters and which were being restored each time Windows booted. This was what I wanted, but there was a problem. Some of the network shares were not always available and Windows was waiting for each connection to timeout before moving on to do anything else.
The solution is a registry change. Adding a single key to the registry means that all network shares are mapped to drive letters as before but Windows does not actually try to connect them until the first time you use them. This cut the time taken to get to a useable desktop on my machine by about two minutes!
So without further ado the magic instructions are: Open the registry editor (run the command
regeditfrom the start menus "Run..." option), and then add a new DWORD key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProviderfolder leaving the value set to the default of 0.
Note that as far as I can tell Windows Vista does things differently and this registry change is no longer needed.