I don't follow. The widget of choice for what you seem to want to do is called "sortable" with "connectWith" option. This will, by definition, only allow each child to be ported once from one list into another.
It is quite funny that you should complain about this behaviour: I just answered another guy who wanted exactly what you got (and don't seem to want). Perhaps the two of you should swap code... ;)
I don't know your code but assuming you really use basic drag and drop, then your droppable must have some digestive processing upon drop. You could realize during that digestion that the new arrival already exists and quietly discard it.
If you don't like this, then also remember the "accept" option in "droppable". Add to each child in list 1 a class called "goodIntoList2". Make members of this class the only accept'able drop into list 2. Then, upon each drop, let the droppable remove from the child (the original, not the helper) that was just dropped that class name (whereby making it ineligible for further drops).