If you look at the block chain with a hex editor it appears at the start of every block I believe. I'm looking at bool LoadExternalBlockFile(FILE* fileIn) and bool ProcessMessages(CNode* pfrom) in main.cpp to see if an unexpected instance of the pchMessageStart could cause an issue.
Doesn't look like it, no.
In LoadExternalBlockFile, the most obvious way to mess it up is covered by the code already. And that way to mess it up is to try to get the parser to skip a valid block by putting in a fake magic number and a size value that would make it miss the start of the real block following. But the code is already smart enough to avoid that problem by only advancing nPos if it finds a valid block. If it doesn't find a valid block, it only skips past the few bytes of the fake magic number.
This is only meaningful when the parser is in the "looking for the start of the next block" state. The magic number has no special meaning inside a block, and since it is only 32 bits, I think there are good odds that some number of blocks include that sequence by random chance already.
Note also that loading external block files is not a common thing. People should not be loading block files from untrusted sources in the first place. If someone has the ability to change your block file, you probably have much bigger problems already.
In ProcessMessage, the context is a message, rather than a stream, so the parser doesn't need to be as clever. It will still mark peers sending bogus block messages as misbehaving and eventually disconnect and ban them.