DaveC mentioned that if the other computer doesn't have their nat setup right it's moot anyway... well the same is true for Dccserver. It needs the port opened on itside. And the user who opens the port on the NAT doesn't pick what one it is. It's picked by the server. So you need to reconfigure your NAT each time a server has a port you don't yet have open.
I dont actually remember saying that, but it was likely I mentioned that its easier if the 1 server has its nat/firewall/router/iis setup to recieve on set ports than expecting that the 100's+ of recievers have theres setup correctly.
Most nat/firewall/router/iis well have no worries with outbound (unless set to) so the reciever of the file doesnt even know hes starting the point to point coms.
The most annoying thing I well say about a NAT on the senders side is that it well change the port number your using for the file transfer, it intercepts the "DCC SEND filename ip port filesize" and adjusts the portnumber (lets say from 5000 to 21050), but most of them miss the incoming "DCC RESUME filename port position" and dont adjust the portnumber back (so you get 21050) and mirc just looks at it and goes, HUH? im not sending anything on that port stuff them.
On the client needing to reconfigure his NAT, i have never seen this, the reciever of the file doesnt need to open the same portnumber as the sender, he only need comunincate to that sender of the files port number, I know this is the case as I have had several downlaods going when all the senders are using port 5001, while my end is connecting on different port numbers, (i just did one to ensure this netstat > TCP DaveC04:4145 xxx.xxx.xxx.xxx.centurytel.net:5001)
I do however think having Active sends is a nice idea also, fservers could use a fall abck system, if the passive send doesnt work try a active one on the reciever, However 3 to 1 that that is going to trip some firewalls to detecting it as a penertration attempt and block the IP