That cancels out your ISP being responsible then. Yes there's 2 causes I can think of:
1. Fake files;
Beware of Fake files in search results (perhaps in some cases for you where you can't connect to host.)
2. Downloading from either dial up (or have greatly limited their upload speed) or those who are already maxed out uploading & don't have much left to spare, OR you are downloading from typical miserly clients such as Shareaza (RAZA). Since they use more than one network which requires them to use most of their upload bandwidth on those networks, it doesn't leave much over for gnutella. So typically they only give miserly speeds. Searching more hosts is best option. And also getting more results option.