Nu-Hir: If you're on 2.4 with iptables (you can rmmod ipchains and load iptables if you're runing the stock kernel), you might try to load the ip_nat_irc and ip_conntrack_irc modules. Also, you need to accept RELATED connections, using the state match support. If you're connecting to IRC on non-standard ports, pass the ports option to ip_conntrack_irc, when loading it (ie, modprobe ip_conntrack_irc ports=6667,6668,6669,7000).
http://www.netfilter.org or
http://www.google.com for more info.
cArLiLLoS: What's port 59 for?
dcnblues: Just use an old 486, with Linux, way cheaper and more configurable. :-) As for what cArLiLLoS said, it will work, provided the client can limit itself to a range of ports. He sid mIRC can do it so BitchX remains the one I don't know anything about (which doesn't mean I know anything about mIRC). If it can't do it, take a look at irssi,
http://www.irssi.org, a very nice, imho, console client. As for getting ident on the MacOS, you'll probably have to run an fake identd for that to happen, but that all depends on how your router does NAT (ie, if it changes both the source and the destination addresses, you get to run a fake identd, if not, you're lucky)