Netbeans seems to struggle with controlling Tomcat generally, I've found. The more times the application is deployed, the more unstable Tomcat gets until I get a smilar problem to the one you described. On large applications it takes only one deployment.
My workaround involves undeploying the application through the Services tab in Netbeans (under Servers/Tomcat6/applicationContext), and then stopping the Tomcat instance, before every time you run your application.
If Netbeans can't undeploy the application, I direct my browser at the Tomcat manager web application (typically http://localhost:8080/manager/html) and undeploying it from there.
If Netbeans can't stop Tomcat, I kill the JVM that Tomcat is using (CTRL + ALT + DEL in Windows).
Using those three methods, I can avoid restarting Netbeans about 95% of the time. When I get super frustrated, I run my project using Jetty from the command line.