Drag-and-drop is evil.
You may ask me why this is. The answer is simple: you have to keep holding down your mouse button until the drag is finished. That is unacceptable. It is too easy to let go of the button and too difficult to maneuver the mouse while holding the mouse button down.
And thus, drag-and-drop (for anything but very short ranges is evil. As is copy-and-paste.
Copy-and-paste help alleviate some of the problems of drag-and-drop, but you have to epress Command-C (or Control-C on Windows), navigate Edit > Copy, or right-click (or control-click) and press copy.
One possible solution is a merging of the good parts of drag-and-drop (its simplicity) and the good parts of copy-and-paste (it's efficiency). There could be a "shelf" (perhaps on Mac OS X's dock and somewhere on Windows' taskbar) which could temporarily hold dragged items. Then, once the user has navigated to where they want to drop the items, they could simply grab the items off the shelf.
Even better would be if the user didn't have to actually drag all the way to the shelf and all the way back, but instead could just begin a drag, causing the item to go to the shelf. Of course, accidental moves may happen, but as the placing of an item on a shelf won't actually move the item, no harm is done. Further, perhaps a keyboard shortcut could be used to pop an item off of the shelf.
My use of the word "pop" in the last paragraph was not a mistake. The shelf should act like a stack does in computing: the last item on is the first one off. Of course, one could random-access any item using drag-and-drop.
To drop the item, the user would click and hold with the mouse for a second or so, and then a menu would pop up. If they release the mouse button, the top item on the shelf will be moved to the location of the mouse. If they select instead the menu item "Copy," the item will be copied there.
Best of all about this concept, users would still be allowed to drag-and-drop as normal if they wished.