I've noticed that the targeting system is very touchy/random and I may have a possible solution (at least for controller users).

I, as others use a wired Xbox 360 controller, I use the 'a' button as confirm (which as you know seems to randomly target someone close to you) and my 'd-pad' for target/menu navigation. The problem seems to be that the up/down/left/right targeting system that is currently in place isn't very consistent, it seems to scroll through everyone back and forth or select players/npc's at random. This just makes selecting a Specific NPC/Party Member a lot more difficult than it should be.

My idea would be to make:
up: Cycle through NPC targets starting with the closest to you.
down: Target self.
left: Scroll upwards through your party list. If you are surrounded by players outside of your party (in town) this could cycle through the other players within a certain radius of yourself.
right: Scroll downwards through your party list. If you are surrounded by players outside of your party (in town) this could cycle through the other players within a certain radius of yourself.