Good idea, here is the script you want, I just wrote it because I figured I could use it too

I've not done a great deal of testing, so if you encounter any bugs let me know. Note that none of the lines should wrap, if they wrap on the screen be sure to fix that.
Just slap this in /etc/cron.weekly or /etc/cron.daily and be sure to chmod +x the file.
Please let me know if you encounter any bugs.
#!/usr/bin/perl
#/* Nathan Fowler
# * evilghost@stickit.nu
# * January 10, 2003
# * Backup the users directory into a single tar-ball.
# * Support auto-cleaning after 7 days.
# */
#//////////////////////////////////////////
#// Edit these values to suit your needs //
#//////////////////////////////////////////
#Path to save backups to.
$backup_directory = "/tmp/backup";
#Backup Files in this directory
$source_directory = "/home/e-smith/files/users";
#Path to GNU-tar
$path_to_tar = "/bin/tar";
#Remove files after 7 days. This is 7 days, in seconds.
$expired_date = 604800;
#Logfile name
$logfile = "/var/log/user_backup.log";
#/////////////////////////////////////////////
#// Not necessary to edit beyond this line. //
#/////////////////////////////////////////////
use File::stat;
$date = localtime();
#Create directories as necessary
mkdir $backup_directory;
#// Open the logfile
open(LOG,">>$logfile") || die("Can't open $logfile");
#// Find and remove expired backups.
@backup_files = ls $backup_directory/*.tgz;
foreach $backup_file (@backup_files) {
chop($backup_file);
$file = $backup_file;
$s = stat($file) || die "Can't stat($file) $!\n";
$now = time;
$modtime = $s->mtime + $expired_date;
if($modtime < $now){
$date = localtime();
unlink($backup_directory . "/" . $backup_file);
print "$date - Removed $backup_file from $backup_directory\n";
print LOG "$date - Removed $backup_file from $backup_directory\n";
}
}
#// Initiate the backup
@userdirs = ls -D $source_directory;
foreach $userdir (@userdirs) {
chop($userdir);
$tgz = "$path_to_tar --directory=\"" . $source_directory . "\" --create --gzip --file=\"". $backup_directory . "/" . $userdir . "_" . time . ".tgz\" " . $userdir;
$tgz;
print "$date - Backed up $userdir to $backup_directory\n";
print LOG "$date - Backed up $userdir to $backup_directory\n";
}
close(LOG);
exit;