I've faced the same problem. Unix utilities (diff, sdiff) isolates things to the line level. That helps narrow things down. But, it's not enough when I'm comparing documents having lines that are thousands of characters long. :( Caveats: the UI is a bit, umm, obtuse, but the price is right (free), and it can locate word-level differences.
Check out the "ediff" mode in emacs.
I was non-plussed until I typed "?" in the ediff dialog and played with the commands. I still have to look them up each time, but it gets the job done.
If file "foo.txt" contains:
first line
one 12345678 two
last line
and file "bar.txt" contains:
first line
one x234567x two
last line
Then it will highlight the differences as being "12345678" and "x234567x", respectively. This suffices for my needs (though I am following this thread with interest!) hope you find it helpful.
Good luck!