(Not sure what versions this supports, but I'm on 1.8.1-pre4)
As far as I know, the only way to detect if any player has a banner of a certain color is:
/clear @a banner 4 0
The above is limited in that it will only tell you yes or no (via comparator). It won't allow you to do anything to the person. (4 is "blue", 0 means "don't really clear the item")
Note: I've been attempting to figure out how to check the color of the banner in the inventory. The NBT explorer results are confusing (See attached image). It appears that the "Base" or canvas color of the flag is stored in the "Damage" field, but I have NOT been able to successfully query this field with NBT selectors.
The Meaning of Life, the Universe, and Everything.
There's a chance you may have to use the tag: tag, but I am not sure. If the banner is mandatorily going to be on someone's head... I don't foresee anyone other than the flag carrier having one on their head, right? So would just testing for a banner on the head slot work?