MS Office adds a few extra wrinkles.  The COM libraries for Office automation specifically support the concept of launching Word from an app, generating a document, and then detaching and leaving Word running.  Because of this, even if you thouroghly destroy all of the COM objects, Word may still hang.  Excel is actually a worse offender than Word, but it can sometimes be tricky to get any of them to close.  Usually the culprit is that you used a collection without creating an explicit reference to it.  Then, you never remember to destroy it because you used it implicitly and you don't have a variable for it.  If you Call .Quit(), the GUI will go away, but the automation server will still hang out in memory.