Using Redhat 6.2 installed out of the box and IPChains (already compiled into kernel), setup is easy.
My setup: P120 w/96mb - you might need a bigger box than a 386 eventually, but you can start with this.
Install two NICs in your machine and get all the drivers loaded. All settings on the outside NIC are the same as given to you by your provider. Use the reserved block for the inside (such as 192.168.0.x). Manually set the IP of your internal machine to be on the same subnet and hook 'em together. Set your PC's gateway to the IP of the firewall's inside NIC and use your ISP's DNS servers.
Once you have all of this up and running, add the lines between the dashed delimiters to the /etc/rc.d/rc.local file (lines are separatedby CR due to crappy reply utility here)... I chose to use the reserved 192.168.0.x network inside, but use whatever you wish - change script as necessary. Note that eth0 is the OUTSIDE. Swap all eth0 and eth1 references below if you did the reverse. The insmod lines inject handling for the higher ports (above 1024) so they are transparently handled from inside machines to the outside. Using this configuration, I have had absolutely NO issues using any application originating from the inside. Good luck!
-------------------------------------
# force IP forwarding on
echo 1 > /proc/sys/net/ipv4/ip_forward
# now start chain creation
/sbin/ipchains -N mymasq
/sbin/ipchains -A mymasq -s 0/0 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.0.0/24 -d 0/0 -i eth0 -j mymasq
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_vdolive
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_quake
# end ipchains firewalling setup
-------------------------------------