We in person actually find it better not to get money before check-in. It is a great argument with "problematic" guests which experienced hosts can recognize after a few sentences in a first message. Also, it is a great savings tool. If we get the money before check-in we will spend it for one or the other reason, and when guest arrives we'd have a feeling we host him free of charge. Not a good feeling. On the other hand, as someone already wrote, if we have constant income, it doesn't matter from which reservation it comes, etc, etc.
The only problem would be cancelling right before arrival. But hey, let's be honest - that happens mostly (if not only) in two cases:
A) to your guest something bad has happened, or
B) your guest is unreliable.
In the first case we would never like to get bad karma by earning on someone's trouble, calamity or whatever.
In the second case, we are happy not to host unreliable guests. Good karma always, 100%, compensates it later when you expect it at least.
We find it fair paying fee for taking money in advance only if we can choose second option - to get money after check-in without any additional fees than 3%. Although, in real it is far more then 3% because we loose additional 3-4% on guest currency's conversions to your credit card currency (when that is your payment method), than additional fees on conversion from the curency of your credit card to your local currency if they're not the same, etc..
But, we think that huge improvement would be refundable/non-refundable policies. That way, we think, it would accelerate cash flow. Anyway it is different subject and we're not sure it is in AirBnB's interest - it'd actually probably lower their income, because A) guests mentioned above in any case will not make income to anyone, and B) guests will nevertheless make income to AirBnB. Regular guests using non-refundable option would lower AirBnB's margin.