BitTorrent's great, but it's not perfect. It's only really worthwhile for larger files, and once you've downloaded the file what incentive is there to keep your client open? Even if you're not using your upload bandwidth, and you're feeling generous (leaving it on until you need the bandwidth or reboot), are you going to bother to manually start an old download up again? One solution might be to create a start-up run tool/service that sits in the background and (configurably) keeps up the swarm count for any torrents you have - encourage users to turn it on, and make it part of all clients; but another idea I just had would be to credit people for providing upload bandwidth somehow over time. Is there a way of safely implementing this (ie. unhackable) without resort to servers? Then each client could decide how much bandwidth another client gets by how much they've helped the swarm in the past. It would be quite easy to do if each client kept a record of how much it's uploaded over all torrents; but keeping it so you can't exploit that to pretend you're massively in credit would be the hard part. hashes?
I have heard of another attempt at a 'swarming download' technique called exeem, developed by the people who run Suprnova, a major torrent archive (although most of the content is illegal copyrighted stuff. It's still in closed-beta testing as far as I know, but their aims are to reduce the load on the central seeding server and turn it from a monolithic system into a more distributed one with a few of the 'swarm' of PCs downloading the file turning themselves into mini-servers, selected by bandwidth or connection availability. Sounds like a nicer idea if it works well.