Like Glennular, we are using them to version control our schema and s'procs.
Although we have a fairly advanced version control structure (CI, auto deployments to dev, single click deployments to stage and prod); we don't include any of the DB projects in that structure. We just don't trust it yet.
UPDATE: (for Out In Space)
We have separate TFS projects for functional areas of the company (Sales, Marketing, etc). Within each TFS project we have a Main and Production folder. We also have one TFS project which contains the Database projects and another one that contains Common assemblies / visual studio projects.
Upon release, we branch from Main to Production. We don't have a staging branch as we move too fast to deal with that. Right or wrong, our productivity is measured in part by the number of production level releases we do per week; bug fixes, new features, etc.
CI is set up on the Main branch such that every check in causes the Build server to deploy to our DEV environments. Unit and Web tests are then run and the build quality is automatically set to "Development" if it completes successfully. When someone changes the Build Quality to "In Staging" This causes any previous "In Staging" builds to be set to "Rejected" and causes that build to be pushed to our staging servers while updating the config files to point to the correct servers. (I used TFS Deployer and PowerShell scripts for this).
QA does testing out of our staging servers. Once they are happy, the production team changes the Build Quality to "Production". This causes the build to be sent to a Production area which then is manually copied to the correct location. Once completed, production notifies development who then branches that version into the Production folder. QA is also notified who then does a battery of Production tests to verify everything is indeed working as expected.
We have reports set up to show us what changes exist between production releases so that we know every check in that is being deployed. That prevents unknowns from popping up such as a database change etc. or some other potentially breaking code.
Further, our BA's are tracking work items via Team System Web Access and know when those items are in production.
Although our DBA's are using Database Edition (GDR), they haven't been impressed with the level of control for auto deployments. I'm hoping that Rosario brings some better deployment control to the product line; but until then we have TFS Deployer and powershell.