Application manifests work differently between XP and the 2003/Visa cores.  On Windows XP the external manifest is searched for and utilized first.

On Server 2003 and later the Internal manifest is read first.  See Junfena Zhang’s post on this topic.  This explains a lot.  I have written several shrink wrapped apps that are installed across a nonstandard install base and this has been my problem in the past.