You misunderstood, he gets yellow bars all the time. I only know of one time where he was able to play for about an hour or so with no lag. Meanwhile I could play Battlefield BC 1 and 2 16 hours straight with no lag which supports my first statment which is actually a theory since I am not physically managing the servers.
What you could try if you felt up to it was when you want to go play COD or H3 instead, find the IP addresses used for the servers, head to your computer get to the CLI (command prompt) and issue the following command: ping -t (ip address of the server) and note the response time in ms. You can also do a tracert to the server ip addresses and notice how many hops (routers it goes through) it takes to reach it's destination. It would be interested to see what the responses are for the servers. I would actually do it myself but i'm not affected by those games because I don't play them...actually, i have very little to do tonight maybe I will do it myself out of courosity then I have knowledge I can use against one of the members of this household when he starts blaming something without getting the facts or evidence to prove it.
You could also see what traffic is in your household. The only time I experience lag is when one person is torrenting like its the apocalypse. Not saying that's your case, but heavy connections to the router can cause degredation in the network. You could also try going to QoS if you havn't already done so, and have your xbox take priority over all other ip addresses and try enabling dynamic fragmentation. You would want to make sure your xbox has a dhcp reservation so that it's ip address is maintained, otherwise keeping the QoS working they way it should becomes moot.
And as any Internet Service provider would do, take the router out of the equation and have the xbox connected directly to the modem at the times you experience the lag.