I took a quick look at the script, and it looks like it doesn't cover snapshot trees. A vmdk that's not reference in the .vmx file may still be in use because snapshots in VMware products work like chains. To find out whether a vmdk file is in use, you should always check the VM's current vmware.log file. Another option is to use RVTools. Although I've also seen orphaned .vmdk files in the past, it's very unusual and deleting files manually should be done with care. I usually power off the VM in such cases and create a sub-directory to which I move the "orphaned" files instead of deleting them right away. If the VM still powers on after that, it should be to delete the moved files.
André