Precisely why I said: drag & drop logic is highly custom.
NGUI offers you a framework for it: you can start dragging when you get OnPress(true). You should then disable the collider of the object you're dragging. When you drop the object on something, you will get OnDrop() on that object, which lets you handle what it is you dropped on it.
What it is you're dragging, whether you can drag it, whether you can drop it in the specified slot, etc -- all of this is custom to your application.