One annoyance in NCM I keep running into is that it does not handle aesthetic differences and white space changes in the configurations AT ALL. NCM should "standardize" the configurations before comparing them. Parse each "block" and "sub-block" of the config, remove unneeded white-space. Shoot put the config into nested arrays if you have to then do the compare on all the root configurations and then proceed to check each sub-array/block.
For example:
Sometimes the startup vs running configuration have the dns/ntp servers in different order. I don't care as long as they did not change.
From one IOS version to another has different number of "spaces" before a particular config line. Again I don't care.
I also compare configurations from one device to another (one Cisco ASA to another ASA) and "order does not matter" if an OBJECT is above/below where it is on the other device or previous configuration I don't care. I just care the the line exists and it matches between the two.