First off, the deployment hell has nothing to do with any shortcomings or problems in the DNN framework itself... but I just had to share my nightmarish experience.
I have been working about 6.5 months on custom modules, content migration, etc to convert our old intranet to DotNetNuke. My development copy and even my "staging" copy all were working just beautifully. We have had the "live" version on a virtual server (vmware running windows server 2003) and have had "performance" issues on it on and off, but that I attributed to flukes.
Well, we launched the intranet live today and it came screeching to a bloody halt. Checking the server, it took me several minutes to even log in, and once I was finally in, I watched it stay pegged at 100% CPU for over 10 minutes. I stopped IIS, recycled app pools, even restarted the server, and it was still sitting at 100%.
Long story short, you should not install a new VM server from a template and subsequently add or remove processors from it. Bad things happen. We created a completely fresh VM appliance and transfered the intranet to it and it is blazing fast.
So that's my deployment story. I thought I was going to crap a brick when it stopped working (especially after spending 6 months talking about how great it would be, blah blah blah)... glad to know it was a strange configuration error on the virtual server and "easy" to fix.