I've seen it "upstream" of the actual installation and be ok.
e.g. when you try to download/install Confluence, they cross-promote some other Atlassian products. It's not done too hard (and I can't find an example of it now). I've seen other "first party" examples of upsell where you are going for one product and add another product from the same vendor.
I've also seen lots of horrible malware, trash, etc. That's almost always what you see with PPI.
I think PPI is like banner ads were pre-Google. What we need is the "AdSense of PPI" to deliver really contextually relevant/well targeted PPI to users. The problem is I suspect this is really hard -- offering a $1-2 payout to put a crappy toolbar is nearly the optimum for any mass market piece of software. But, if you had more targeted software (say, an awesome reverse engineering tool), there would probably be related tools you could promote at the same time which would be win/win.
The irony is you're more likely to see this as a third-party service, since individual volumes on tools with niche userbases are really low, unless a publisher has a bunch of complementary products in-house. There's nothing specific enough for a Java JRE downloader to win out over a shitty toolbar. There isn't enough volume for a decompiler to pay someone in-house to go out and negotiate a deal with a fuzzer or something, so you either do nothing, or run shitty toolbars, or hope for a company who could provide really targeted PPI for smaller niche publishers.
I'm not saying InstallMonetizer is that now or ever, but if someone did that, I'd be really happy with them. It may or may not be a good business model, though.
Atlassian does this from within their various products. For example within JIRA it will advertise for Bamboo, which is their CI stuff. Except, we already have CI in the form of Jenkins and are more than happy with it.
It's annoying, well at least to me, because I would click on one of the various tabs in JIRA and be presented with an ad instead of the information I was seeking.
We have Jenkins set up to input data into Jira, unfortunately that integration isn't entirely fantastic and doesn't always work as well as one would hope. Mainly because Jira's SOAP API is an absolute mess.