You are right about things that he eats or drinks causing this. Many don't realize that what goes into our bodies affects us drastically..even if it doesn't until later, when something builds up.
First thing, get him off of milk (cow's) immediately! Milk is very mucus forming and a big culprit when it comes to ear infections, etc. (This is coming from a mom (me) whose first son drank a lot of milk and had multiple ear infections. I finally realized the connection and took him off. What relief for him.)
Another thing you can do when he seems to get a bit sick is to give him some Emergen-C in his water the first sign of any kind of sickness. If you can do something about it EARLY, then it won't develop into something worse. You can find Emergen-C at your local health food store or at Wal Mart.
If he has been on antibiotics, he needs the good put back into his body. When taking antiobiotics, his body is stripped not only of bad, but good. Therefore, his body can't fight the next thing or is weakened. He needs some probiotics. You can get it at a local health food store...I like the Jarrow brand. You can open the capsule and put it in his yogurt, etc.
Just a note...I haven't had to take my children to a doctor for sickness in almost 7 years. They are rarely sick and when the first sign of anything comes up, we nip it in the bud fast...and I'm talking about pneumonia, kidney infection, ear problems, strep, etc. I've handled them myself and they have not suffered due to the quick action of herbs.
I hope this helps some! It certainly helped me with my children when I was first learning to be Dr. Mom years ago.