Did user or moveItem call my onDrop event?

When a user manually drags ‘n’ drops a tree branch or I call moveItem they both call the trees onDrop event, in which I set the user data of the parent.

I don’t want moveItem to call the onDrop event.

How can I either …
(a) stop moveItem calling the onDrop event.
(b) know how the onDrop event was called.

The following has failed …
(a) detachEvent, call moveItem and then attachEvent back again.
(b) cut and paste.

Please help me!