Capturing IP address of transactions submitted to Bitcoin
So a node that creates a transaction needs to propagate it. It will connect to other nodes. Usually to some reasonable number like 8 nodes (please see getpeerinfo on your client).

As a mental exercise: If the 8 nodes (that I randomly selected from the network) belong to the same person, that person will have the possibility to capture 100% of my traffic. My IP address will be known, but also there could be a selective attack that prevents my transaction from being broadcasted (i.e. he/she decides to drop it based on my sending bitcoin address). 

The more nodes the attacker has, the more chances to have all outgoing connections from the victims plus the possibility to do data analysis. Also more chances of dropping (selected or random) transactions.

I don't know the economics behind an attack of this nature. Buying 5000 VMs to run nodes could cost a lot. 

Examples are out there that they ask for bitcoin to set up full nodes, like https://classic-cloud.net/ [1]. as 2016-04-01 they have 810 nodes running. So you can imagine that they could be able to track some transactions to IPaddress. 

Edit: [1] as of 2019-05-17 this is not longer a page that has stats about nodes, but rather a blog.