Using NAnt to manage your build dependencies and projects is indeed troublesome since you need to maintain the dependencies in both the build script and the solution file. The usual thing is simply to ensure developers update the build scripts as they add/remove projects to the solutions and make sure you have sufficient automated smoke tests that you'll spot when expected pieces haven't been added.
It wouldn't be difficult to write a tool to parse the solution file and work out the project dependencies, but I'm not aware of any that already exist.
Note that MSBuild is what VS uses internally and it can accept a solution file as an argument if you run it externally, it will generate an equivalent MSBuild script from the .sln and execute it (you'll see a .sln.cache file appear).