All the examples of findElement(By.xpath) I\'ve seen search the whole page, e.g.
WebElement td = driver.findElement(By.xpath(\"//td[3]\"));
I think this might be a bug in the way that Selenium2 uses xpath. However, I believe I've successfully limited the scope using "::ancestor" before.
In any event, have you tried using Css Selectors to solve this? Is that an option for you? Try this:
tr.findElement(By.cssSelectors("td:nth-of-type(3)"));
This should do the job and is the equivalent of what you tried initially:
tr.findElement(By.xpath("//td[3]"));