One of the members of the iphone dev team, planetbeing,
ported Android OS (from google) to the iphone. Binaries are available for both 2G and
3G phones (not 3GS). The best part is that the iphone becomes a dual boot. You do not need to completely remove your iphone firmware. However, there are some issues like bugs, performance issues, and power consumption issues. So, in the current state, this is not for the faint hearted. Here is the
step-by-step guide to install Android on iphone from pcworld.