I was fighting this for 6 months, and the cable company claimed it wasn't their problem. They were partially right. They sent a technician who monitored the line signal strength, and figured out that the problem was very simple. There was a 3-way splitter in the basement from the previous owner, but only two were connected. So we lost 1/3 signal strength there. Instead of 9db, we were split 3/3/3. Also, we had another splitter, so the three db that was sent to the modem was split in half, so the 3 became 1.5 for tv, 1.5 for internet. This was enough to work sometimes, but not always.
The fix was to change the 3-way to a 2-way, and to send 2/3 to the internet/tv, and 1/3 to the other tv. So now we have the same three devices, but they receive 3 db of signal each, instead of 3, 1.5, and 1.5. It has worked flawlessly for 2 weeks now. The testing and changes took less than 15 minutes, and they covered it because they should have done the testing when they first installed. The technician said that they outsource to consultants, and sometimes they just install and chack that the internet/tv work, but don't run the diags to be sure that the signal strengths are all accurate.
Another symptom I had was the lowest channels would sometimes have interference. This is the range that the modem uses, so there was conflict. This problem is completely gone also.