It is quite doable. The question is how much administration do you want to do for setting your parameters (I.e. max discount, which coupon codes, etc.).
Otherwise most of this can be done via the 'pre_promotion_check_coupon' PHP hook to evaluate the product, price, bonus and max discount. Feel free to click the link in my signature to get a quote. Please provide complete requirements if possible on all the criteria/logic you want to manage and we'll be happy to give you a quote.
If your conditions are "fixed" then you don't need a lot of UI to manage them and those parameters can be contained in the code itself.
Please click our get-a-quote link below and provide the full requirements and we'll be happy to give you a quote. We'll then start an email dialog with you to ensure that your needs are being met.
We don't quote via PM because there is no real trail of the requirements nor the statement of work we generate so that we are both protected on what we commit to and what it's going to cost.