glad to help.
You are correct about the DradDrop events only affecting the instance being dragged. In C2/C3 understanding how instances are "Picked" is a very common stumbling block, but once you get your head around all the nuances, you can do some pretty amazing things!
You can refer to the picked object as "self" to access the objects properties. Which comes in handy if you have several instances picked, you can say "Set Objects.x to self.X + 50" to make each one move relative to their current position...
I use instance variables a lot! it keeps all the relevant data with the object. The alternative would be to look up data stored in an array or something, which can work just fine too. If you have multiple objects and want to sort/arrange them, you can put them all in a Family and give them a code stored in an instance variable to make them do what you want - rather than giving them a name with some code tacked on the end (although that can work fine too - just whatever makes the most sense to you).
The DragDrop events are Triggers, which means they only get processed when an instance triggers those events. I used Touch rather than Mouse so that my example would work just as well on a phone or tablet. On touch devices you get multi-touch, so two people could be dragging around objects at the same time, and the event sheet will only apply the actions to the correct instance selected. Even if two objects were dropped at the exact same time, each one would trigger the Drop code and only apply the actions to the instance that caused the trigger.