In the Microsoft Dynamics GP Contracts module, a part of the Field Service series, it's easy to see how to create monthly, quarterly or annual billed contracts with a different revenue recognition schedule. What's not as obvious is how to deal with something like a three year agreement that is paid up front. There is no billing type beyond annual.
The Contracts module can certainly handle this. Using the example above, simply set the revenue recognition dates to the appropriate 3 year period. Then set the billing type to Annual and the billing dates to only cover the first year. The system will create one bill at the beginning of the billing period for the entire 3 year coverage time.
I have seen cases where this causes the monthly billing amount in the lines to be off but that has no effect on these type contracts. It's annoying, but it won't hurt anything.
So there you go, multi year, single payment contracts in just a couple of short steps.