I'll admit I haven't been on IRC in 20 years, but while I remember fiddling with active/passive FTP settings and port forwarding every week at the very least, I do not remember any times where I had similar issues on IRC (using mIRC and later various Linux IRC clients, mostly Xchat and BitchX) in the 1890's. I don't know how it would have worked though, thinking about it.
(and I think from the above description of my typical computer use at the time, it's quite obvious what I was doing, and how that would have given me plenty of opportunities to run into all sorts of (compatibility) issues)
When using DCC send in passive mode the sender listens on a local port (59 by default) and sends the receiver a CTCP message (an IRC protocol PRIVMSG message wrapped in \x01) containing their IP address in integer format and the port number. If the receiver accepts their client connects to the sender's open socket and the file is immediately dumped through the connection.
In theory there must be some scheme for forwarding the port through a firewall on the sender side, which might be setting the sending device as "DMZ". Or you can put the burden on the receiver by using active mode.
mIRC should really support UPnP by now but I don't think it does?
(and I think from the above description of my typical computer use at the time, it's quite obvious what I was doing, and how that would have given me plenty of opportunities to run into all sorts of (compatibility) issues)