Directory listing and data transfer problems are almost always related to firewall/proxy problems which are blocking the extra ports required.
Data transfers, including directory listing, are performed on port 20, while the ftp connection and commands are sent via port 21. To help by pass these problems, there are two type of 'ftp' sessions one can use, passive and active.
In cases like yours, we usually configure the ftp client to use passive ftp, ensuring all data gets transfered without problems.
I'd advise you to take a quick look at the FTP protocol section under Networking->Protocols and then turn to your client to resolve the problem.