Browsing the web come up with several suggestions about disabling software and other start up processes which I played around with to no avail. In fact the more I messed about the longer it seemed to take.
Within the Event Viewer underneath Applications & Services\Microsoft\Windows\Diagnostics-Performance\Operational I was finding boot up logs of warnings and errors, each time with various other (and sometimes none) messages.
I ended up trying a System Restore to a time before I remembered it being slow and that seemed to work initially but then after installing missing patches and software it started acting slow. So as a final resort I restored it to the initial state on purchase, after backing up all my wanted files of course,
This apparently formatted the c drive and I was expecting everything to be as it was when purchased. Sadly it didn't appear so, so either my memory was failing (likely) and the computer had never been that quick to boot up or something was still amiss.
After more research I then found the following pages:
http://smallvoid.com/article/winnt-xperf-xbootmgr.html
http://helpdeskgeek.com/how-to/speed-up-boot-time-in-windows-vista/
http://forum.thewindowsclub.com/windows-tips-tutorials-articles/30384-how-time-boot-perform-boot-trace-windows-microsoft-windows-7-sdk.html
and, in my opinion, the best one
http://alinconstantin.blogspot.com/2008/06/speeding-up-windows-vista-boot-and.html
They all pointed towards something called the Windows Performance Toolkit which Microsoft has information on at http://msdn.microsoft.com/en-us/performance/cc825801.aspx
I thought I had nothing to lose in trying this out so the first thing I tried upon finally installing the Windows Performance Toolkit, which was a challenge in itself. I had to install the Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 first. I only installed the Win32 Development Tools from this as apparently the full install would have taken quite a long time. Once this had been installed I could find the correct WPT file in the C:\Program Files\Microsoft SDKs\Windows\v7.0\bin directory. In my case it was the wpt_x86.msi file as I had 32 bit Vista.
I ran the following in and elevated command prompt once this was installed
xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\
The system then rebooted and left me with log files in my root directory (thus the C: above) that I could examine. These files gave me the knowledge that the disk activity was running at almost 100% during boot, giving me the impression this could be the main problem.
This looked a similar status to that mentioned by Alin Constantin in his blog so I followed his instructions and tried defragging.
Defragging was tried first using Vista's built in tool, despite Vista stating it wasn't necessary. This took forever and I actually got fed up of waiting for it before downloading another tool which did it far quicker. I wasn't convinced however and I noticed no significant improvement upon reboot after this. The improvement I did get came after I actually left the Vista defragging utility to run overnight and it actually finished. I was still getting errors in the above mentioned event log but they were warnings rather than critical.
The laptop was becoming quite usable again but I decided I had nothing to lose in running the command Alin mentioned that apparently forces "existing internal operating system optimization mechanisms to update their state based on the current configuration of the system".
xbootmgr.exe -trace boot -prepSystem
This was the command I ran and after about 6 re-boots I am left with a PC that now seems to be as it was when I got it. Although I am still getting the odd warning message in the event log.
Tonight I am going to let it defrag in full again just for luck!