Download Bootvis from www.microsoft.com and run it the next time you boot. Do a 'Trace'
If it shows a very long 'HDD init' time of minutes rather than seconds then this is how to fix it.
This example assumes you have 1 Hard drive on your primary IDE channel and a DVD-ROM(or CD)
and CD-R on your two secondary IDE channels.
Go to start > right click on my computer > click properties. Click Hardware > Device Manager.
Go to IDE/ATAPI Controllers. Select primary channel. Right click properties. Click the Advance settings tab. Then on the device (0 or 1)that does not have 'device type' greyed out select 'disable' instead of 'autodetect'. This should stop windows trying to find a drive that isn't there.
If you have your IDE channels set up differently simply repat the above for the secondary IDE channel settings.
When I did this my boot time went from 3mins 20 to 35 seconds.