Well I've been taking a look at the network code over the last few days. I've got a lot of details filled it on the internal data structures used.
I also found a little about how SIGS can pass the list of player network addresses to the client. On the one hand, this means that SIGS can inform the other clients of a player's external address, but there is one slight problem. The client tries to bind to it's own address. Which means the client must be given a valid internal address on it's own network for the bind to succeed. You can potentially cutom tailor the player's list for each client, so rather than a broadcasted mem copy of a global list, you can update just the client's own address when sending to the client. But there is still a problem. SIGS must know the internal address of the clients. It can very easily get the external address by inspecting the From address when a message or connection arrives at the server, but the internal address would have to be specifically sent inside of a packet. I have yet to observe this behavior for SIGS. This means that even if SIGS can solve the external IP address issue created by home routers, the Outpost 2 network code can still creates another problem with binding to internal addresses.
Also, I've come across many other sections of code that seem to call bind for no real good reason. Suffice it to say fixing up the network code is going to be a pain. The ideal situation is to have a single port for all traffic, which is unbound for clients and initially sends data out, and is bound for a server where traffic must come in. Instead Outpost2 seems to use a seperate port, almost always bound, for pretty much all the different components of the protocol, where the data direction is often intially inbound traffic. If any outgoing traffic is sent first, they seem to have a nasty habit of sending the outgoing data on a different port than they expect the incomming data to come back on.
It seems they've done just about everything they possibly could have to complicate our lives.