Nima,
I can think of two ways to do this.
1) Set live_revsion to NULL and make all the queries that list the files etc, check for the live revision.
2) Set the publish_status and make all the queries check for publish status.
I guess somewhre you'd need to add a parameter to set this behavior, deafult to off, and an administrative view to manage the items that are invisible.