Can I flag a time machine backup so it never gets overwritten I'm about to upgrade to lion and at some point in the future I might want to restore back to a snow leopard time machine backup.

However, recently my first time backups have been overwritten.

Is there any way I can preserve a backup so it won't get overwritten ?
No - Time Machine has set permissions on the drive and has full root access to delete any and all backups that the algorithm feels needs to be deleted.

You get warned after the deletion happens, so you will need to copy that snapshot to another drive or outside the Backups.backupdb folder on that drive to ensure Time Machine won't delete it if you leave it mounted and space fills up on the drive to the point where the estimated size of the next backup exceeds the free space on the volume.