When you say "private users" only I'm assuming that means these users are authenticated somehow. You could store these files outside the web directory, and then serve them up via PHP/Perl/Your_Favorite_Programming_language.
A link could lead to a script that checks if that user is authenticated, if so, serve the file up via the script.
In php, after authenticating the user, you could use:
header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('/full/path/to/your/files/movie.mpg');
Just remember to make that directory outside your webroot, and to set the permissions to the same user that your scripts run as (nobody, generally under apache).