Thàt, or creating a custom 'front' program (though that would imply a custom transaction). Add all the fields you want on the selection screen of your 'front' program and when executing, you pass them along to the standard transaction.
A bit like the decorator design pattern from OO programming
Downside is obviously the custom transaction, but the advantage would we you can do almost everything you want and you only need to pass along the data..