Your current technique seams sound. I would recommend sticking with the existing method, and simply moving the data from the current server to the archive server using DTS or SSIS on a daily basis. Then on the server with the current years worth of data delete all data which is over on year old.
Are you using SQL 2000 or SQL 2005? If you are using SQL 2005 are you using the native table partitioning or manual partitioning?
You might find this interesting
Refer to the below readily available products that u can use for archival and purge if you using Oracle Database