I've been having some problems with a friend connecting to an FTP server I set up using IIS 6.0. IIS is a real pain in the ass. Filezilla seems much better. The big problem with any FTP server is setting up the PASV ports on the router to be forwarded to your target machine, as well as the obvious port 21.
FTP server in active mode means it tries to connect back to the client, which when the client is firewalled as well, obviously isn't going to work. Putting the FTP server in passive (PASV) mode means the client connects both the control and the data connections. The control connection is over port 21, and the data connection is over a port specified by the server.
So you need to tell the FTP server to use a narrow range of ports (Passive Port Range) and then forward all these ports at the server's router to the server machine.
Then any client can connect to the server from behind their firewalls.
Only, I'm having a problem with a particular situation where the client can't connect to the PASV port. I don't know yet whether the problem is IIS 6.0 or a Bigpond router. Both Microsoft and Telstra SUCK. *sigh*