I need to explain the filesystem structure so that you can understand why it appears like it does.
Every object has at least 3 dates associated with it: creation time, modify time, and last accessed time, maybe attribute change time too. These are stored in what's called an inode. The inode contains a flag which identifies if the object is a file or directory (or other things) and the block address(es) of the data.
What's important to note is that a directory data block only contains the filename and its inode address.
When you create/copy a file, rename/move a file or delete a file you will update the modification time of the directory because you've had to add, edit or remove entries from the directory.
However, in your case the files a.wmf and a.doc were created on or before 20 Nov 07, and then they were editted on 21 Nov 07. The point is that the filenames a.wmf and a.doc were not renamed on 21 Nov 07 so that's why the directory wasn't modified.
If you want to find the last modify time of any file within a directory (but not sub-directories) then you could do
cd /programs/postanalysis/output
ls -lat | tail +2 | head -1
Finding the last modify time of a file anywhere in a directory tree would have to involve some combination of find and sort, but that's not so easy to write off the top of my head.