A shot in the dark: Is your program using setsockopt() with SO_KEEPALIVE? The timing of the keep alive packet is a registry entry, and normally is set to two hours. If you see this behavior at only one installation, then perhaps the registry entry has been over-ridden and set to only one hour.

Search for KeepAliveTime on this page, to find the precise registry entry: http://support.microsoft.com/kb/120642/EN-US

Of course, this is not the answer unless you see identical behavior from other installations, but at the two hour mark instead of the one hour mark.

Mike