Hello Bulls,
I have just successfully done the exact same thing as you propose, except with addition that I moved the whole site from a sub-dir to the root on the new server.
I did use cpanel on both old and new server, but this is not essential.
It's less painless than it sounds. Here's my brief;
1- backup database (cpanel backup)otherwise MySQL admin. (GZ format)
2- backup whole XOOPS directory (Iused ftp here as I needed to change some things, but you could use cpanel backup again)
3- create db on new server (I used exact same name and password)
4- restore db in cpanel to the db you just created.
( I think you could go straight to step 4 and miss out 3.)
5-upload XOOPS files via ftp or use the restore feature in cpanel.
6- Here's the important part: You need to reconfigure manually mainfile.php to match all your new conection strings. This is critical and you need to get it right, or else you won't get a connection with your site.
7- Go to your restored site home page and login. Go to admin and update system module and all the other modules you have installed.
8- your site should be mainly working now.
9-If you have any hardcoded site referencing urls in the database, these will still be pointining to the old addresses, so you will need to correct these. Likwise any hardcoded URLs in any html and php pages in the file set.
10- I changed hard-codedURLs by using MySQL admin but also downloading a little program called Win-GZ. It will allow you to decompress your database on your local machine as a flat file that you can edit, either directly or using a find and replace function. Then Win-GZ will recompress the DB back to a .GZ format ready for restoring to the server.
Hope this helps. Take it slow, make backups, keep off the whisky and smile...
Richard. PS This is my one-off experience that was successful. HOWEVER, if I have left any pointers out will others please chip in here!