I just added a requirement to the BIP 72 (bitcoin: URI payment protocol) spec:
Wallets must include an Accept HTTP header in HTTP requests:
Accept: application/bitcoin-paymentrequest
... and submitted a pull request so the reference implementation follows the spec.
Thanks to Stephen/Jeff at BitPay for the suggestion. I'll make a similar change to BIP 70 and require wallets set Accept: application/bitcoin-paymentrequestack when sending the Payment and expecting a PaymentACK message in return.