Directed donations don't always work. If there is a fund paying to multiple things and you say "this $20" goes to that project, they can just send that much less from the fund and send it elsewhere.
My state promised that money from the lottery would go to education rather than the general fund. It does, but that doesn't mean education got more money when they started the lottery.