IainB was talking about the tool:
Soluto (MajorGeeks)
This tool shows you exactly how long each part and/or program in the boot procedure took...and where you can make the most gains. Pay attention to programs in the boot process which require access to internet to function. If there is VPN software installed, virtualization software installed or both, the Windows system registers multiple network cards with which it can work. Thing is that these network cards are
accessed in order of priority, not all at once.
It could be useful to change the order of priority, because most network traffic uses the TCP protocol for the actual communication. This is an old protocol, which can wait for a maximum of 30 seconds before it assumes a network connection is bad. During that waiting period, the rest of Windows is waiting too. This TCP waiting period cannot be adjusted using the GUI in Windows, Microsoft has never made it part of any configuration setting anywhere in any version of Windows.
Only in the registry it can be adjusted, but is not advised to do so, unless you really know what you are doing. In any case, if the order of priority is set in such a way that only the last network card is able to create a working connection during boot, the TCP protocol can introduce long wait times in the boot procedure. If there are more than one piece of software that requires internet access during boot, TCP will introduce the same waiting period each time.
A tool like Soluto will give you a much better idea of where to look for solving long boot times.
Edit:
An alternative to soluto:
BootRacer (free for non-commercial purposes)
When you cleared up the boot mess, it is likely helpful to put up software that lets the owner of the system know when new installed software makes its way into the boot procedure again.
Tools like
WinPatrol,
Sterjo Startup Patrol or
SpyBot Search 'n Destroy can help with that.
Edit 2:
Adjuste the Soluto link.