Essentially all we needed to do was take the CRM 4.0 old database, import it onto the new SQL 2008 server and then use the CRM 4.0 import manager which pretty much took care of the rest. At that point, we just had to sit back and wait and put our faith in Microsoft... (which is true any time you click that "install" button at the end of the installation wizard process).
What's nice about this type of upgrade where you move to a new server is that you can pretty much leave your existing 4.0 installation in place until you've crossed the proverbial rubicon. Therefore the risk factor is much lower and you always have the option of rolling back (although you should never have to exercise that option...).
Obviously there are a lot of other things that need to be planned for and verified post upgrade such as plugins, reports, workflows etc. which will vary from installation to installation - those should be part of your due diligence upgrade plan. But assuming those have all been accounted for, the upgrade experience has thus far been a very smooth one.
The only things encountered in our internal upgrade were some strange "unknown" headers appearing in the system:
<Group Id="System_Setting" Title="System">
The other oddity was that certain sections were missing the header groupings altogether:
Once again this was solved by going to the Sit Map and adding the ShowGroups attribute to the relevant areas:
<Area Id="MA" ResourceId="Area_Marketing" Icon="/_imgs/marketing_24x24.gif" DescriptionResourceId="Marketing_Description" ShowGroups="true">
And that was pretty much it.