The deal always takes way more work than the startup expected, and ends up delivering way less benefit. The best solution, when possible, is not to do custom deals at all, but for one of the parties to have an API that the other uses.
E.g. the App Store, vs the custom deals startups used to have to make to get their applications on phones.