Strange font behavior with external monitors on MacBook
The problem has to do with LCD font smoothing.
This Mac OS X Hints tip describes how to fix the problem:

In Snow Leopard, you can only choose between Automatic and Standard CRT. Since few people use CRTs these days, most users now have only one option: Automatic. The problem with the Automatic option is that OS X incorrectly detects many third party LCD monitors as CRTs, and consequently, disables LCD font smoothing.
You can force OS X to use LCD font smoothing on all displays with this Terminal command:
defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
The number 2 here corresponds to Medium - Best for Flat Panel. You may also use 1 for light smoothing, and 3 for strong smoothing, as per the original OS X font smoothing options.

You might have to re-login (maybe even restart) for this to take effect.