I have done this very thing for the company I work for. I took some ideas from an excellent article I read on the subject, and modified the architecture to work for our environment. See:
This article describes using a web server and ASP pages to manipulate VSS. I created a full-fledged VB tool that our company uses to manage all of the check in/out, demotion, promotion, seeding, etc. involved with our development enviroment.
We use two physical VSS databases. On the development database, we set up promotion levels for managing a "Development/QA/Pre-Production" environment so that code is isolated in each development stage during the development process.
Code is "demoted" from production to development by checking it out to a username that is the version that we are working on. (in the example below, the username would be "MYPRODUCT V5.3"

The version 0_Development VSS project is then seeded with the projects/files that have been checked out of production.
As development proceeds, code is "promoted" from 0_Development to to 1_QA for testing. If testing is successful, code is then promoted to 2_Pre-Production. If QA determines that more work is needed, code is "demoted" back to 0_Development for more work. (I used the article's convention of prefacing the promotion level VSS project names with 0,1,2 so the display in VSS is consistent with the level.)
When we are ready to promote back to production, we do a GET from 2_Pre-Production. We then go to the production database and check in all projects that have been promoted.
In this way we maintain a complete product version history in our production database that stays nice and clean because it doesn't have tons of individual developer history.
--------------
Production VSS
--------------
MYPRODUCT
COMPONENT1 CHECKED OUT TO MYPRODUCT V5.3
COMPONENT2 CHECKED OUT TO MYPRODUCT V5.3
COMPONENT3 CHECKED OUT TO MYPRODUCT V5.3
etc.
---------------
Development VSS
---------------
MYPRODUCT V5.3
0_Development
COMPONENT2
1_QA
COMPONENT1
2_Pre-Production
COMPONENT3
Let me know if you would be interested in the source for the tool...