How to make Ezreal stop ruining on-hit effects for everyone
Change his Q from "applies on-hit effects" to "counts as a basic attack and not a spell." Then add to his passive "Ezreal's basic attack counts as a spell and not a basic attack."
This will give him almost everything he currently has without whole classes of on-hit items and runes needing to be balanced around him.
For example, he can still proc IBG, Triforce and Klepto with his Q but he needs to use one of his other 3 abilities or an auto attack before it will do so. (which would be a fair tradeoff considering the range and low cd of Q) His free "double-hit" is taken out of the equation without changing his core playstyle and itemization.
Inb4 "he would be so weak without this interaction", yes, he would definitely need buffs after a change like this, I don't deny that. But his numbers being rebalanced to compensate for the loss of this interaction is a small price to pay to make all of the on-hit effects in this game able to be balanced without asking for this single champion's permission first.