Please elaborate further, how this could be done. We have no need for the coins before the maturity, so if there is no risk to us, or hassle to the user, we certainly want to give it a shot.
The basic idea is that funds are blocked in such a way so both service's and user's signatures are require, i.e. neither service nor user can move money on his own.
There is a risk that user won't unblock funds when he should.
Normally this isn't a problem as you can give user an incentive to unblock funds. For example, user deposits 110 BTC, puts 100 BTC into a bet, loses it. He still has 10 BTC on account, and he needs to unblock whole sum to get it.
However, there can be a problem with users who are stupid assholes, are dead or want to ruin service financially at their own expense.
I don't know how likely are these scenarios, but it's possible to try to fix it using a more advanced scheme, say, 2-of-3 signature: some trusted 3rd party can unblock funds when user isn't cooperating.
As for the tech side, in the most minimal way you can generate a private key from a user's password in browser and use it to sign multi-sign transaction. It is relatively easy to implement.
People did something like this via command-line interface... However, as far as I know, currently it isn't used in any of user-facing apps. blockchain.info has a page about escrow, but it isn't present in wallet.