What I want to do is install a training site on a different server using our existing designs/metadata schemas/asset builders etc, and import a small practice site for people to use.
Reading through the manuals the best way would appear to be use the export_to_xml.php and import_from_xml.php scripts
php scripts/import/export_to_xml.php /home/websites/mysource_matrix 100000:100 1 > /tmp/import_pages_100000.xml
php scripts/import/import_from_xml.php /home/websites/mysource_matrix /tmp/import_pages_100000.xml
However I have tried using the export_to_xml.php script but there seems to be some limitations for example if there is an image linked on a page it fails and doesn't import, if it generates an error either exporting or importing it doesn't seem to import. If it is just a standard page or folder it seems ok, so some content has come through ok but most hasn't. It would appear to need a lot of scripts and time (trial and error) to import just part of a site.
Is there a better way to do this?
I guess another option would be to restore a backup and trash all the sites except for the training section, then backup this smaller install, this seems to be a bit backwards though, and still wouldn't be the easiest way to export a site.
The two methods are the ones you have outlined.
The export script wont do absolutely everything, but it is good for a lot of complicated setups and has been used to export whole sites as templates. But if it doesn't work for your setup, it just doesn't work, and you can't trick this script into working 
The backup/restore/delete thing is, while time consuming, the most accurate method.
Thanks Greg, I was hoping the script could work for me but at least the backup/restore/delete option will work in this instance.
The problem I can see would be trying to merge 2 large sites onto one install or sharing a large piece of content (the training site) between different installs, if the script has failed it would only leave the manual option.