DreamHost has an anonymous FTP service (additional cost due to requiring a unique IP address) that allows one to setup permissible actions (ie, download, directory list, upload, delete, rename) on a per-directory level but there is no user authentication.
See Anonymous FTP
This would be a CGI script, maybe called a "file manager" but the point is that instead of the FTP protocol, it uses the HTTP protocol, or a combination (like http://webftp.dreamhost.com/. That is a significant difference. Instead of the visitor using a file transfer client at their control, the visitor only sends the file data with their browser, and you get to control what is done with the data, such as saving it to file in any directory you like, owned by the domain user running the CGI script.
One such "file manager" script that at least looks nice is Ajaxplorer but I haven't tried it on DH myself yet.
Installs easily enough:
mv AjaXplorer-2.5.2/ filemanager/
In the editor make changes, then hit Ctrl-O and press Enter. Then browse to http://domain/filemanager/
It doesn't let you set a maximum disk space though. But using it you can set up a repository per user, and only grant "read" access so they can't delete the files in the repository. And you can either use your own FTP client to upload the files or it includes a Flash app for uploading via HTTP.
Customer since 2000 openvein.org