When I search for "Eclipse Java", I want results about the IDE. When my girlfriend searches, she's probably interested in Twilight-themed coffee or something. That's what personalization is all about.
And if you usually search for programming languages, but this time want to understand what your 13-year-old cousin keeps blabbing about? Suddenly it all falls apart and everything about the whole process seems murky and over-complex.
The idea is that ambiguous search queries would default to the meanings related to your normal search behavior, and if on a particular occasion you discover Google resolves the ambiguity incorrectly, you could make your query more precise. In the above scenario, you could search for `java eclipse stephenie meyer' and your 13-year-old cousin could search for `java eclipse ide'.
In my experience, for overloaded terms, the less pertinent one tends to pop up near the bottom of the front page. For example, when I search for "Python" the sixth result is about snakes.