Here's one way.
1) Use a shell name of "/bin/false" for the user ID, which prevents that user from logging in by anything but ftp.
2) Map a unique directory for that user to mount as their root so that they don't have access to the rest of the system (i.e. "/ftp/username/./public" makes "/ftp/username" their root "/" and starts them in "/public" off of that directory.)
3) Assign the user to their own unique group that has no other members. (i.e. "ftpuser1"
4) Add access permissions only for the user's group in the "/etc/ftpaccess" file (i.e. "guestgroup ftpuser1"
5) Provide only the minimum necessary commands for the user's ftp shell. Basically you copy the necessary files into a customized root structure off of their mounting point. Typically you only need to provide "/bin/ls", "/dev/socksys", "/dev/zero", "/etc/group" (a modified copy containing only groups they need), "/etc/passwd" (a modified copy containing only their login and with all encrypted passwords erased), "/lib/libprot.so.1", "/usr/lib/libc.so.1", and "/usr/lib/libsocket.so.1".
6) Shutdown and restart ftp. "ftpshut now ftpshutdown" "ftprestart"
Note: Ftp setup can be tricky. Refer to your user manual for more or the ftp man page for more info.