Sending bitcoins to an IP address was a convenient way of sending bitcoins to a Bitcoin address along with additional information.
- Your client contacts the IP address to find out if they're actually running Bitcoin and accepting IP transactions. If not, no transaction occurs.
- Your additional information ("from", "message", etc.) is exchanged with the server.
- The server generates a brand new Bitcoin public key and sends it to your client.
- Your client sends coins to this public key.
Unfortunately, the implementation provided no authentication, so any "man in the middle" could have intercepted your bitcoins during the transaction. When they see that you're sending a Bitcoin payment by IP address, they pretend to be the actual destination and send back their Bitcoin address. You end up sending bitcoins to the wrong person. It's therefore no longer a good idea to send bitcoins in this way, especially if you're using a proxy.
This feature has been removed from Bitcoin Core as-of v0.8.0.