Alright well this is a very misunderstood problem by many with many variables.
First do a sho ip nat statistics
if total entries are less then 30K the router is good, A little tuning you can get these to hit 35-40k (assuming 128mb ram).
Second what is your internet connection speed and type.
Scenario 1
If the cause of the problem is that your router is having a hard time tracking nat translation, you have two options
1) set each tcp and udp nat timeouts to a reasonable amount, (tcp time-out after 24hrs default)
Here's How:
ip nat translation udp-timeout 600
ip tcp translation udp-timeout 600
That will make each inactive proto session be cleared out of the nat table after ten minutes. (this is a big help)
Second create an access list with known offenders and limit there nat count. If they complain tell them to turn of the torrent if they want internet. (this will be useful in scenario 2 as well)
Here's How:
ip nat translation max-entries list ACL_LIST HERE 7500
That will limit the acl group to a total of 7500 concurrent translations.
Scenario 2 (Most Likely)
The router is not the issue, but upstream bandwidth, When an inside host attemps to make an outside request the request is queued because of congestion in the outgoing direction, and very well may timeout. (SO COMMON) with 100 and anything less then a full 15mbps up and just 20 are seeding without upload limits, just forget it the outside world and they will suck you dry all day long
There are a couple of solution some simple, other tough (qos)
Get more bw
Tell your users to cut the sh**T
implement that neat little max translations to a group of users and bring the limit down to 1000. (a request to msn takes like 115). That will make them shut it off.
Keep us posted
-Mike
sorry about the poor organization, writing from an iphone.
20 yrs old, working towards my CCNP. Looking for a new job

02472