Bare Metal Clean Installs have been my specialty since I was beta testing Windows 95 OSR2 in 1996.
Hardware First
Bios updates are always done prior to installing your OS. You can use the great Ultimate Boot CD to get to a command prompt and flash the motherboard BIOS, then reboot and teak the settings. This will make for a more successful (read: better performing) OS install. On newer systems I like to set the hard drive controller to AHCI SATA mode, not IDE mode, as I find it works smoother with less CPU overhead.
Get any expansion cards installed and have all your hardware ducks in a row BEFORE you begin the OS install.
Software Next
I like to build a custom OS installer for my systems, slipstreaming all the latest updates and drivers into the mix so the system will be totally up-to-date when the OS install completes. The great DriverPacks by Wim Leers and company go a long way to making this happen, and there are some wonderful tech forums where people eat, breathe and sleep this stuff. I used to use nLite and vLite, but now I use something called SMART which can alter the service settings to make the box work faster, be more secure and reliable, for whatever you need to do.
After the OS and current drivers are installed, I like to use System Restore or Ghost to make a backup/save the clean install so if I need to, I can go back to it easily.
I also reboot the system a few times during this phase to populate the Prefetch folder and flush out any startup and shutdown potential problems. Get the networking setup and tested, but don’t go out to the web much until later when security software is installed
Applications, Oldest First, Newest Last
I start with browser, archiving utilities (WinRAR, Firefox), add the Adblock and NoScript plugins, text editor (NotePad++) and FTP (WS_FTP or FileZilla), then the bigger apps, oldest first and newest last.
Very last, install anti-virus, and firewall (I love MS Security Essentials), and something called WinPatrol (Scotty says “woof woof”) which monitors all kinds of system stuff all the time and tells me when something tries to install itself.
YMMV, but this approach has stood me well for many years and hundreds of installations. I am transitioning all this to a virtualized approach, where my host OS will be plain and simple (though secured) and all my apps stuff will be done in easily restored VM disk files.
I love technology. And I love How to Geek!