Well, I have been trying to solve this problem for like 2 years now...I was playing Gears 2 campaign with my highschool friend, got disconnected, and that was the last time I ever had the chance to play 2 player campaign on live :(
Anyway, after a lot of research it was not the NAT or xbox live accounts or any of that. It was finally explained to me by and xbox support tech that sometimes for some reason your IP addresses are too close or you are running through the same DNS server and somehow Xbox live recognizes the connection between you and your friend as a local network when it is not. This could be way off but it doesn't sound like anyone else has an answer.
I was told that by contacting your Internet Service Provider it is possible that you could have your IP address changed to a different one that is not as close to your friends (which i'm guessing is fairly close to yours and I believe the closer you are to them the more similar they would be). If this is possible I would change your IP (if you feel like this is worth it) to something different. I would compare your old IP and your friends IP and try for one that is still with your original ISP but as different from your friends as possible.
Again this solution was a suggestion from either my ISP or it may have been Xbox but it definitely was not the average "it must be your NAT" minimum wage phone answerer. I got irritated hearing the difficulty I would have to go through not know entirely if it would even work so I never did try changing my IP. Changing your ISP would also work but out in the country were I am its either DSL with my ISP or satellite internet (which won't happen). I'm dying to hear the results if someone tries this. Send me a pm or something.
Good Luck,
Ryan - Eywas Legend