Don't do anything complicated with VSS. I think many people who've never had problems with VSS were just using it as file share (i.e. files get checked in once and are never modified)-- ironically using VSS as ordinary file backup actually increases the odds of catastrophic loss!
VSS drowns you in a barrage of poorly worded questions. There is not a single answer to each question, you will have to stop and think about each one. When disconnecting from VSS you'll be constantly asked if you want to switch to using VSS over IIS, if you do so, it will not be obvious how to undo it.
Don't use the VSS plug in to get an initial project or check out a project. The VSS plug in tends to put your files in unexpected places, use the VSS client, which is much more likely to give you a folder structure that mirrors the project structure in VSS.
Don't use build in features to branch, don't merge. Create a new VSS project (i.e. new set of folders) and check in code as if it was a brand new thing when you need to branch. Use something like beyond compare if you need to simulate a merge.
Don't rename files, instead add new, copy paste, then delete. This breaks the history chain but has fewer aggravations
Do allow multiple checkout, but informally don't let too many much work be done on the same area of code, don't let other developers let their version get too stale because then you're trying to merge your old working folder version and the latest version and VSS tends to drown junior developers in questions they don't understand.
Don't do extremely large check ins. Don't use on a slow network connection without 3rd party products.
If you use the VSS plug in in visual studio, do periodically use the VSS client to compare and synchronize your working folder, but do so file by file, not in a batch.
Don't let the repository get too big. Split repositories for unrelated work.
Don't be fooled by the logon password. VSS is no more secure than the NTFS permissions on the folder.
When a developer leaves the company, ask them to undo their checkouts. It is an order of magnitude easier to undo checkouts using the same machine and user credentials and working folder than to use the admin account to undo someone else's check outs.
All best practices for any source control system also apply, e.g. check in successive versions of binaries as binaryfile.bin, not binaryfilev1.bin, binaryfilev2.bin, but do tell VSS that .bin or what have you means binary or it will try to do text merges.