It’s weird. I have ports 80, 2120 and 2121 forwarded to my Linux box via my Billion 7300a modem. The latter two (picked for random things because they’re cool numbers) work fine; requests to port 80 just stop dead at the modem and time out.
Everything’s forwarded correctly, my ISP doesn’t force me to opt-in to opening port 80, my DDNS URL resolves correctly to my home address, but nobody comes to the door when you knock.
Actually, it’s the modem hiding behind the door, and it’s got no intention of answering. The modem’s webconfig runs on port 80 as well, although yes it’s only available on the local network, not from outside.
According to this, you have to change the port the webconfig is running on – despite it not responding to hails from outside my network anyway – before forwards to another machine on port 80 will work at all.
It’s not just the 7300a that does this – I mentioned it to a friend, and he said his 5100c did exactly the same thing.