Dan Kaminsky has pointed out that it would be possible to build a service that tries to infer the source IP address of each Bitcoin transaction. His idea, which he calls Blitcoin, works by maintaining connections to all nodes in the peer-to-peer network and noting the IP address of the first node to report the transaction. This won't always be the IP address of the source of the transaction (for instance, there are a number of ways to hide one's IP address), but sometimes it might be.
Has anyone built such a service? How often does it work, in practice? Are there any commercially available services that have maintained past archives of this information?