I had to go into my Paypal Profile settings and explicitly set my IPN callback to: <domain>/payment_callback.php
Its odd though, I don't ever remember having to do this with vBulletin. As well, this sounds problematic, because what if I have multiple forums, all paying to the same account; it seems to only be able to send the callback to a single domain.
Many people wonder what to do about specifying the Return URL or Notification URL. Set the URLs to the appropriate address for *one* of your stores. It must point to a valid address. But when processing transactions from your various Zen Cart stores, the appropriate address for each store will be substituted automatically.
Another tidbit to keep in mind is that with the IPN needed, the forum needs to be publicly accessible. In my case I had the forum directory password protected because I did not want google archiving my test site, but others may have reasons for having non-publicly accessible forums with paid upgrades... such as an intranet. But I seriously doubt someone will encounter that often.
To be clear - with my test site password protected, the IPN never came, and account upgrade was never confirmed nor took effect.