Have you double checked the user's configuration in User Manager to make sure they don't have any timeouts set? Also, check to make sure that there are no timeouts set under Citrix Connection Configuration. After these are verified, have the user check their dial-up to make sure they have no timeouts set. Since Citrix sends and receives so little info, a lot of ISPs and modems don't see any traffic at all and will disconnect the session. You can also have the user try a utility like "StayAlive" or "Stay Connected!" or "Remain Connected". You can also create your own batch file that will continually ping the Citrix server and keep the line looking like there is traffic on it. Here's what I used for one of my remote users(replace the Xs with your server's IP address).
CLR
CD C:
echo ...
echo Press Ctrl-C to Stop. Press Ctrl-break for stats
ping XXX.XXX.XXX.XXX -t
Hope this helps-
Glenn