So let me see if I understand you correctly: grant money pays for the research, one company swoops in and markets the drug, then a third company swoops in and markets it, and you think that is a problem?
If Northwestern did the research with its own money (which does sometimes happen, I think), then it is good that Pfizer had to pay Northwestern for the research, because this funds more research. The patent is just the legal mechanism that makes Pfizer have to pay as opposed to getting the research for free.
In some cases, the government funding issue is relevant. Not in all cases.