Obviously not an easy problem to work out as there are so many factors involved with network traffic.
First I would look at the IIS logs to get any clues and look for any errors that might have occurred
Pick out the http status 4xx or 5xx errors or any win32 err status <> 0 or possibly timetaken > say 20 seconds (not always a great way of telling as there could be large files and/or slow connections that would valid but worth a look)
Collate these together and get a running total of the most common ones, Narrow this down by the clients IPs.
This is a lot easier if you have the logs stored in a database which I would recommend. If not use LogParser and maybe a GUI like Log Parser Lizard (http://www.lizardl.com/PageHtml.aspx?lng=2&PageId=18) to make life easier for you.
Compare the times of these problem requests with any events in the event viewer and the httperr log file. Remember the time field in the logs is the time the server finished the request so the time they first accessed it is time - timetaken fields. So look for this time in the eventviewer/httperr/firewall logs/etc/etc
Look for any patterns that might occur. Time, IP ranges, etc.
Post back the details of any particular and persistent problems you may have and we can have a look and maybe give you some more ideas.
Hope it helps