There are people with experience in serving stuff similar to what you're asking for.
If you're working at a NASA center, you'll need to get a waiver to be allowed to use peer-to-peer; this goes for both the server and the users, so only making the data available via p2p might make it effectively inaccessible to some scientists (unless they're willing to go through.
Personally, when people ask for large quantities of our data (it's images and data cubes, with most files are under 100MB), If it's under a few GB, I have some CGIs that will generate tarballs / zip archives on the fly. We were looking at writing our own download manager, but I'm thinking about going more generic and writing a BagIt interface to serve un-populated Bags, and a client for filling the Bags & verifying them.
For data the size you're talking about, we have people mail us hard drives, and we format them, and mail them back. Odds are, they're going to need disk space to store it when they download it, and it only happens a few times a year, so it's more effective for us than paying for more bandwidth. (we just got a shipment yesterday of 7 2TB drives for someone who wants the full data for two of the instruments whose data we archive here).
...and I also try to make sure I don't generate files larger than 2GB ... they just get too unwieldy, and you start hitting issues with older OSes and filesystems.
And if anyone has any recommendations on limiting bandwidth and connection to a given IP within Apache, I'd be grateful -- every few days I get someone from China opening up all of the available connections to suck data out of our systems. I've seen over 800 at a time. (the firewalls are managed by another department, and they'll block IPs, but not throttle)
You might also want to ask on the Earth and Space Science Informatics mailing list -- even if it's not your field, we're all interested in data distribution issues.