Is there a price field that can be used to charge a percentage as a service fee in a priceset?
Should have looked before leaping - there's an extension named Percentage Price Field. As long as it works, that should work!