Not sure if this helps, but could it be that you are using Session variables that are not getting killed after use? I’m wondering if this could be the problem.
I built a large web-based intranet app for a client using Asp.Net on Win 2003 Server with SQL 2000 backend on separate machine. The main page was extremely large, with a alot of data filled controls, and with lots of postbacks taking place, thus the amount of view state data was huge. There were approx. 50 users at any one time, and they would login in morning, and logout at night. We never had any issues with degradation of performance as session times increased. I used session variables to hold datasets and tableviews (plus other pieces of data) However, I was extremely careful to kill any and all session objects as soon as they were no longer needed.
In some ways, our apps may be similar (large, complex page) but we run the app on different OSs…perhaps that may be a factor(?).
Anyway, I hope that you find an answer to the problem.