The problem with this approach, as anyone who has ever tried to download content on the system - legitimate or otherwise - knows, is that towards the end of a download, any one downloader could have a while to wait for the particular pieces he needs. As the number of receivers increases, scheduling traffic also becomes more complex, and the whole process slows down.
Microsoft Research's approach gets around this by re-encoding all the pieces, so that each one that is shared is actually a linear combination of all the pieces, fed into a particular function. The blocks are then distributed with a tag that describes the parameters it contains.
Once you have downloaded a few of these, you can generate new combinations from the ones you have, and send those out to your peers. Collect enough of these pieces, and you will have enough information to reconstruct the whole file. Even if you don't have all the original pieces distributed by the person who held the original version of the file.