We have a commercial website with two country specific domains (.fr and .ch), each in the country's currency. The user accounts are bound to the domain, but the products are mostly the same on the two sites. The user can choose in the menu the other country's website, his choice is saved to a cookie and redirects from then on to the site of his choice.
The visitor is redirected to the domain according to his IP address, based on Maxmind's GeoIP database. The geolocalization is done server-side and the visitor is redirected via a 302 HTTP header.
I am concerned of a penalty by Google for one of the two sites. In fact, the Google bot visits the site from the US and is therefore consistently redirected to one of the two countries. Of course, Google has servers in France and Switzerland, and can therefore access both websites. Nevertheless, we found that the websites visitor count dropped since we implemented this redirection pattern.