A few things to check:
1) If you are using any external scripts (like ant) to build or maintain any contents of any of the projects, it’s possible that your workspace is getting out of sync with the files on the file system, which will stop the deployment utility dead in it’s tracks (which would explain #2 and #3). You want to either make sure you are refreshing your projects after running a script, or turn on auto-refresh under Window > Prefs > General > Workspace > Refresh automatically
2) If you are deploying to a running app server, it’s possible that read-locks on the files you are trying to delete then redeploy are causing the deployer to die. Although we did improve this in 5.1 to make it more resilient so you shouldn’t be seeing this in most cases.