I've written over 2 million words with DNS over the past several years and I couldn't live without it.
Recommendations:
1) Get a good mic, as stated above Sennheiser ME3 is the shit.
2) Work in a quiet room and try to deaden echoes by shutting doors etc. No music and no fans in the room!
3) Set your volume properly by using the accuracy tools every time you start up.
4) Reboot your computer after every hour or so of writing - I don't know why, but accuracy tends to degrade the longer you leave the program running at a time.
5) Spend a lot of time training the program by reading the scripts provided. It definitely helps.
6) You need to feed in a LOT of your own text so DNS can learn your natural vocab usage and what words typically follow particular words.
7) Run the vocab and speech optimizers regularly at first.
8) Spend a few hours dictating and correcting the most common errors by voice, then re-running the optimizers. After this, just keep a note of words that DNS consistently gets wrong and train them individually when time permits.
9) It's generally faster to use DNS to dictate and then edit / correct by hand - but you won't get the training value if you don't do corrections by voice, which is why you initially should do corrections by voice until you get your accuracy up to a decent level.
10) Keep a mirror next to your desk so you can check your exact mic position in relation to your lips. You want the mic slightly below and to one side of your lips - not right in front. Exact mic positioning is a HUGE factor in the variations in accuracy you get from day to day.
11) Use the right regional accent setting for your voice (there are options for UK, Australian, Indian accents etc). I'm from New Zealand and I use the Australian accent option, and it works great. If I try to use US, the accuracy sucks.
12) If you consistently keep getting a word that comes out wrong, work around it by using words > properties and use a custom spelling for that word.
13) You have to speak in smooth sentences with a slight gap around each work, and speak crisply and clearly - it's definitely a skill you have to learn. DNS gets its accuracy by analyzing your words in context - if you just say single words, the accuracy will suck.
There's probably stuff I've forgotten, but if you work at it you can get the accuracy to 98%+. It's an amazing tool.