it can be done, and works great if u take the time to implement it right.
you need 4 things:
+ a chroot patch for sshd, freely available on the net, so that it executes a chroot() when the user logs in
+ a fs skeleton on every user's homedir (each with it's libs and allowed binaries)
+ a proper least-privilege-possible ACL that "hides" the system below the user's homedir and sets rules on what he can do in it's own fs skel
+ some scripting to help managing this in a easy way (optional)
It's as secure as it can get when giving shell access to users..
have fun