The Body Shop is a hard one to boycott - Nestle is earning profit from it, but in turn TBS support women and communities in minorities all over the world, every day and has done so for years. That part will never change. I used to work for TBS and it SUCKED when I realised Nestle had a part in it.
Unfortunately one rotten apple spoils the whole barrell.

So if nestle started donating 20% of their earnings to charity (which they might do anyway for tax benefits) then it's ok to buy Nestle?

Where TBS fell short was selling out to such a company. Why do it? Does it all come down to money in the end? Just like it is with Nestle? Makes them no better really. That one last transaction makes me question the genuineness of their ethics code in the first place, probably a marketing ploy.