Hi,
you need to use a relative translation as opposed to an aboslute, so when you drag and object around, you don't move it to the position of the finger, you translate it everyframe by the amount of drag for that frame.
does that make sense?
as for your limitation, one easy way, without getting into too much math is to use triggers, simply suround your area with virtual walls ( triggers) and when your object touches them then you don't allow movement further in "that" direction.
Tell me how you get on with this, it's quite a hot topic, so if you keep struggling, I'll see if I can make a micro sample showing this.
Bye,
Jean