Arduino - Ir Communications over long rang?

Finding out how far apart they are using IR intensity will be a difficult thing to do properly but to overcome the direction problem you can drive multiple IR LED's from a transistor so the signal sends in all directions. To reduce power you could also drive just a quadrant at a time and when you get a reply your pointing in the right direction.

Something like the below image but all the way round instead of just half a circle.