You make applications for customers ? Well, then you should have different directories for each customer. You should also establish means of keeping track of different versions of your applications. This can be done with tools like SourceSafe (shipped with Visual Studio) or by creating directories. If customer A receives rel 1.0.1 and rel 1.3, he might want to add a feature to the elder release 1.0.1. You should be able to work on that code stream as well as the newest and freshest.
This is also evident if you create a new release with new features and all. Since all history shows that new versions also might be buggy, you should be able to maintain and work with the existing- and shipped code streams. Maybe your customer needs a hotfix which render impossible to implement in your new code at this moment!
I have a directory structure similar to this: