Well these 2 scenarios are I think most common also...
at my company I've bean using DNN w. VSS for a few years, and although VSS isn't the best source keeping application (to say the least :)) things work as they should.
Now, as for the scenario's, I've used the following:
1. When developing new modules I am only putting the modules in source safe
2. When making core changes I have a "changed" version of DNN in which I integrate all my changes, and then check in the complete DNN in source safe
What kind of problems are you having?