Трудно сказать, правда.
Клиент, похоже, расшифровывает знак вопроса в "% 3F", но не в амперсанд. Подозрительно, не правда ли? Это похоже на глючный клиент IMO. Может быть, непортативный javascript, может быть какая-то ошибка перезаписи URL на стороне веб-сервера или более эзотерическая причина ... неправильно работающий плагин для браузера.
Чтобы исключить непортативный javascript, зарегистрируйте user-agent и сравните результаты. Чтобы исключить ошибку переписывания URL, войдите в систему referer.
AFAIK, поведение декодера URL жестко задано. Кодировка строки может измениться, если URI записан не в ascii или не в iso88591, но это не то, что вам нужно. То, что кодирует знаки вопроса, но не может кодировать амперсанды, ускользает от меня.