|A device driver can cause this.|
All processes consist of both use mode and kernel mode portions. When a process terminates the kernel mode portion will remain in memory (and Task Manager) until all device I/O is complete. If this was not done some rather nasty things, such as a system crash, could happen. In this case all I/O is supposed to be aborted, but some device drivers do not handle this situation very well and this does not occur. In this case a program could remain in Task Manager long after it was closed.
Some application faults can also do this.
An updated device driver or application may solve the problem.