Solution 1:

Because Google can detect which browser is accessing its page, thanks to the User Agent string.

Firefox already uses Google as the default search provider, which most people will not change. This means the Firefox users will give revenue to Google thanks to the ads displayed next to the search results.

IE8 by default uses Bing as search engine and thus does not redirect searches and money to Google. That's why you see the ad on IE8.

Solution 2:

Because Google believe that people who use Internet Explorer are only using it because they do not know better or that there are any alternatives out there.

Likewise, they think that if people have already made a switch, they had their reasons and are not going to do it again / if they know there is better, they will do it themselves and not be influenced by adverts.

Solution 3:

well there's loads of html/css/js specs that internet explorer just doesn't follow. therefore if google wants a better web, supporting open standards, then webkit/gecko/opera is the way to go. also, there is the 'default search engine' issue as explained by Snark.

Solution 4:

In my opinion, it is just to get people using a standards compliant browser. If they are using Firefox, they are already using a standards compliant browser, and thus, dont need to make the switch.

And perhaps a little to stick it up Microsoft for having such a poor browser (yes, I am talking about IE8)