I was faced recently with wanting to move Asana projects from one workspace to another. Unfortunately this isn't a feature in the Asana interface (yet).
There's a PHP script floating around GitHub which will copy tasks between projects. This requires you to do some manual checking of project IDs, and you need to create the target project in advance, so I've extended the script and written a front-end web interface for it.
You can get the source code on BitBucket.
Update - August 2016
Attachments are now copied to the new project along with the tasks.
Update - March 2016
The old API key based method of granting access to the Asana API is now unavailable, so I've replaced it with the proper Asana login procedure.
Update - July 2015
I've moved the tool to Google App Engine, which should make it easier to work on some features. If you want to run a standalone copy, the current version still works without app engine, but going forward it may be necessary to use the App Engine Launcher to run a local copy, or deploy it in your own app engine account.
The first improvement is live feedback during the copy process.
Visit asana.kothar.net to use the tool
#mc_embed_signup /* Add your own MailChimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */