Problems with font rendering on a MacBook Pro using external 24" LCD
Solution 1:
You should try adjusting font smoothing globally. Open up terminal and type:
defaults -currentHost read -globalDomain AppleFontSmoothing
Depending if it's enabled or not you might get a message such as:
The domain/default pair of (kCFPreferencesAnyApplication,
AppleFontSmoothing) does not exist
(which is actually good, since it tells us it's not set, and why you have the issue).
Next, type:
defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
If it doesn't look any different, worse, etc. or want to adjust it even more replace the number '2' with '1'.
To remove the global setting you can use:
defaults -currentHost delete -globalDomain AppleFontSmoothing
*Hopefully this solves your troubles.
Solution 2:
The first image is using sub-pixel anti-aliasing, which is takes advantage of the way the RGB sub components of an LCD monitor happen to line up. You can see this by using "DigitalColor Meter", or any other utility, to zoom in on the pixels.
The second image is using full-pixel anti-aliasing, which is 3x blockier, but works on non-LCD displays and LCD displays which use a different sub-pixel ordering.
At least in Mac OS X 10.6, this is controlled by the Appearance control panel and the "Use LCD font smoothing when available". The key is "when available". The OS must correctly detect when your display is an LCD.
A peculiar quirk that I've noticed is that if you change that setting, it does not immediately change the fonts already on the screen. You have to at least close and reopen a window, sometimes quit and restart an application, for the new setting to apply.
My guess is that you have "LCD font smoothing" turned on, but you are moving back and forth between a display which OS X recognizes as an LCD and one which it does not.