this same problem occurs with warcraft 3. you can join anyone's game, but you have to configure some stuff to create your own. iirc, you go to connections and properties on your connection, then on the network tab you have to check all the options. you also have to deactivate windows firewall or add the program to it, though i can never do that right.
that only works if you're using a bridge though. with a router, you have to manually open all the tcp and udp ports used by wc3 - or in this case, d2 - to be able to host.
when i used to play this with my friends, one of us hosted and the rest joined by connecting to his ip manually. why don't you just do that?
to see the ports it uses:
http://portforward.com/cports.htm