When you host a game you tell BattleNet that you are hosting. They then get the game information from BattleNet including your IPaddress so they can join the game. When they join the game they connect to your computer which then fills in all the data (such as the map download). The problem is that if your computer is behind a NAT, the NAT (usually a router) has no idea which computer the incomming client connection is for as it contains your physical IP address and not your local NAT address. Especially if you have 2 computers on the same NAT (sharing your router) it cannot be assumed where to forward the packet as they both might expect it.
To get around this most routers allow packet forwarding. This feature is often called "Virtual Server" and is used to filter out packets which have no clear desternation. It works by specifying an incomming port (where the packet is going) and then a local IP address that can process it. This obviously means that 2 WC3 computers behind the same NAT will need to use 2 different ports to host (configurable in options) inorder for the packet desternations to be distinguished.
Modern games use advanced NAT resolution techniques (such as those used in torrent clients) or dedicated servers (like StarCraft II) to bypass this.
If it is a map you downloaded here then it is possible that it is not compatible with the new versions of WarCraft III. Many maps were broken when they removed the type casting exploit years ago.