I've been writing a small utility for moving work items between Team Projects. I just got it into a good state so I posted it on my Code Gallery project.
Moving work items between Team Projects was a bit trickier than I expected. I ran into a bunch of subtle issues like:
What I did to implement a 'move' is to mark the source work item with a new state called 'Moved' (this state is inserted into the work item type of the source work item). The destination work item type retains the original state. I also look to see if the destination Team Project has the right work item type, if it doesn't, I'll import it in. For now, I'm not dealing with users or permissions.
Anyways, it was a fun little project to write up - I'd love to get some feedback on it, so if you have a chance please check it out.