Thank you for the advice on using SQL, I can now easily move batches of machines at a time.
I have also modified the query so if you want to mirror your AD structure you can use the following :
To generate a list of the Group IDs from DS do this
osql -E -S SERVERNAME -d dsolution -Q "select group_id, name from computer_group" -o "C:\list.txt"
Replace SERVERNAME with the name of your server and dsolution with the name of your database. This generates a text file called list.txt on the C: drive which contains all the groups in DS with their ID listed next to them
To then assign machines to groups based on OU membership in Active Directory use the following
osql -E -S SERVERNAME -d dsolution -Q "update computer set group_id = '67' where msnet_domain_ou in ('sub_ou/sub_ou/main_ou')
Replace SERVERNAME with the name of your server and dsolution with the name of your database, get the group_id from the list you generated above and the OU structure by either looking at the properties of a client in the Deployment Solution console, or by studying your Active Directory structure.
This is using DS 6.9SP1 on Server 2003 with SQL 2005
Hope this helps some folks