I give kind of a long write-up here but it is really pretty simple, use patch.
Make the $FULL_COPY as usual, but for the $NEW_SNAPSHOT, exclude the very large file(s).
For now, let's say it is one file and the path to the file is /home/myuser/.mail/INBOX you would run:
rsync -ar --link-dest=$LATEST_SNAPSHOT $FULL_COPY $NEW_SNAPSHOT --exclude=/home/myuser/.mail/INBOX
This will decrease the time to take the snap-shots dramatically.
Next, let's fill out the paths for more clarity. Let's say the 'root' directory of $FULL_COPY is under /mnt/full, so the full backup of the user's mail directory goes to /mnt/full/home/myuser/.mail/INBOX. Similarly, snap-shots similarly go under /mnt/snap-mm-dd-yy.
Then to get only a delta of the inbox and put it in the correct dated snapshot at a location that makes sense, run:
diff -u /mnt/full/home/myuser/.mail/INBOX /home/myuser/.mail/INBOX > /mnt/snap-mm-dd-yy/home/myuser/.mail/INBOX.delta
What you have done here is use diff to create a patch file of today's mailbox file for the full backup mail file (the -u option of diff does that) and send the patch file to the snapshot directory under a predictable location (i.e. the user's .mail directory for that date).
Finally, if/when you need to restore the mailbox back to the way it looked on the day of the snapshot because you lost the original, first restore everything to the original path using your $FULL_COPY and $SNAP_SHOT. Then, run the patch program to recover the INBOX delta:
patch < /mnt/snap-mm-dd-yy/home/myuser/.mail/INBOX.delta
1) If you look at the INBOX.delta, the first two lines are the paths to the old and new files, so you could edit this if you didn't want to patch using the original path(s).
2) Though the delta grows a little larger each day, it still remains much smaller than the whole. Growing the delta until the next full is going to be a more efficient use of resources than creating multiple patches.