Great question, and an area that I've been paying a lot of attention to recently.
I think there are probably 2 or 3 different answers to this.
Firstly, I'm convinced there could be a more elegant solution than separate pages (such as customising the on-page elements based on user IP, rather than redirecting based on IP). However, sounds like you're being pushed down the multiple page path, so...
Second solution is very Google-centric. As far as I know, Bing won't support this solution as well as Google would. You could use a combination of rel=canonical and rel=alternate hreflang="x", where
for your UK page publish:
<link rel="canonical" href="
http://tharpa.com/us/esh">
<link rel="alternate" hreflang="en" href="
http://tharpa.com/us/esh">
<link rel="alternate" hreflang="en-gb" href="
http://tharpa.com/uk/esh">
for your US page publish:
<link rel="canonical" href="
http://tharpa.com/us/esh">
<-- (optional)<link rel="alternate" hreflang="en" href="
http://tharpa.com/us/esh">
<link rel="alternate" hreflang="en-gb" href="
http://tharpa.com/uk/esh">
If you have any other countries you're targeting in English add a similar line (rel=alternate hrefland=en-XX) for all "esh" pages.
This should (for Google at least):
eliminate duplication issues
consolidate juice
for local engines (e.g. google.co.uk) the local URL will rank (.../uk/esh)
For the above I've assumed that
http://tharpa.com/esh doesn't exist, and that the /us/ page is the catch all for all English language search that's not from the UK.
If you have the patience to work through the following link, it might be worthwhile. At least the discussion between Pierre and Edward at the top, then scroll to the bottom for Kieran's question to another Google rep, Christopher.
https://plus.google.com/115984868678744352358/posts/9zA3a96XahN