Your process sounds fine to me though admittedly I haven't done anything with SBS2003 before.
- Build the new server
- Prepare the AD schema (adprep /forestprep, adprep /domainprep /gpprep, adprep /rodcprep)
- DCPromo the new server in to the existing domain
- Install DNS role on to it and wait for replication to complete (c. 10 mins)
- Transfer all 5 FSMO roles to it (Forest: Schema & Domain Naming) (Domain: PDC Emulator, RID Master, Infrastructure Master)
- Make the new server a Global Catalog Server
- Install DHCP role on the server - don't create or activate a scope
- Use netsh to back up the DHCP config from the old server and migrate it to the new one using netsh again.
- Update the DHCP scope's DNS Server settings to reflect the new Domain Controller's IP address (so that clients are using the new DNS server!)
- Bring the DHCP scope online - this will kill the SBS server's DHCP service.
At this point you should be set to decommission the old server however I must admit I have little idea how this is achieved with SBS2003. One assumes that the roles can simply be uninstalled but I'm guessing.
Run DCPromo on the SBS2003 box and follow the instructions to remove Active Directory from the server.
Hopefully that's a decent intro. If you're running Exchange 2003, you will need to commission a new server and migrate mailboxes to the new server before transferring the FSMO roles.
NB: Once you have moved your FSMO roles and decommissioned the SBS server as a Domain Controller, you've got a grace period of 7 days to fully decommission the server before it starts shutting itself down, as per this doc. http://support.microsoft.com/kb/555087