Intermittent issues like this are notoriously difficult to troubleshoot, and often the only way of finding out what is going on is by looking at the log files. Unfortunately, the log files are generally comprehensible only to developers with access to the actual code. However, with a bit of luck, someone here might be able to discern what is going from the log entries.

The next time you get the disconnect error and
BEFORE YOU DO ANYTHING ELSE
...
  1. In the /Applications/Utilities folder, launch Console
  2. In the Console sidebar, click on system log
  3. Copy the last 20 or 30 lines from the log
  4. paste those lines into a reply to this thread and post it
  5. keep your fingers crossed for luck


With luck, someone here will be able to interpret the log and identify the problem.



"All you've got to do is own up to your ignorance
honestly, and you'll find people who are eager to
fill your head with information"
--Walt Disney