I talked about this in another post but here is some new information. I have two friends both with Linksys WRT54G wireless routers. They can join other people's hosted games (Halo 3 for example) and play. But if one of them starts a match and the other tries to join, they cannot. They have also reported problems with hearing each other's voices.
The first person's router went bad and he got another one. I had to go over and fix this problem again. To fix it I updated the router to the latest firmware version for it. This can be downloaded from the Linksys website. Updating the firmware did not fix the problem. His Xbox 360's IP is manually set (in this case i did 192.168.1.105. I enabled DMZ on the router and set it to be that address. That fixed the problem. Then a week later he said he was having the problem again, and the xbox network test was reporting his NAT as Moderate. So I disabled the DMZ and set the port forwarding on the router to forward ports 3047 and 88 to his xbox's address (192.168.1.105). It still did not work and the network test still reported Moderate NAT. I preferred using the IP forwarding rather than DMZ, because DMZ seems like overkill. Anyway, I power cycled the router (unplugged, waited a minute, and then plugged in). Now the Xbox 360 reported open NAT and he was able to join to a match hosted by his friend. I hope this helps someone!