Elaborating on my proposal:
SETUP_LIMITED_ACCOUNT(address X, address Y, LIMIT, INTERVAL, CURRENCY)
Once the command is made, private key y (corresponding to address Y) would have the right to withdraw money from address X, but the transaction would be invalid if, including the transaction, more than LIMIT units of CURRENCY get withdrawn within a span of INTERVAL, where the "time" of a transaction is defined as the timestamp of the block it is included in. The CURRENCY parameter could either be (1) BTC, (2) MSC, (3) a Mastercoin-based custom currency or (4) a price index published by some organization leading back to either (1), (2) or (3).
The reason why I say "address X" and "address Y" is that you might want to create a limited account for a multisig, in which case there is no single private key. The authorization would come in because one input to the SETUP_LIMITED_ACCOUNT transaction (probably input 0) would need to come from address X, and by Bitcoin's rules the transaction would then need a valid signature for address X.
Example:
-> SETUP_LIMITED_ACCOUNT(X,Y,10,1000000,'Bitstamp:USD')
-> sign(send(X,Z,5,'Bitstamp:USD'),y), block timestamp 1370000000, txid 132
OK
-> sign(send(X,Z,3,'Bitstamp:USD'),y), block timestamp 1370500001, txid 2c4
OK
-> sign(send(X,Z,3,'Bitstamp:USD'),y), block timestamp 1371000002, txid 9ff
OK
-> sign(send(X,Z,5,'Bitstamp:USD'),y), block timestamp 1371500000, txid 81a
NOT OK (as 2c4+9ff+81a have total value 11 Bitstamp:USD but appear within the span [1370500001,1371500001), violating the constraint)
-> sign(send(X,Z,5,'Bitstamp:USD'),y), block timestamp 1371500312, txid cd1
OK
The command can also be used to adjust the limit (by calling SETUP_LIMITED_ACCOUNT on an address that is already a limited account), or revoke it (by calling SETUP_LIMITED_ACCOUNT(x,y,0,1,0)).
Use cases:
1. Your own Bitcoin account. Store the main password in cold storage, but first create an account with the right to withdraw 1000 Bitstamp:USD per week and put the privkey to that in a more accessible wallet.
2. Corporate wallet with limited employee rights. Company creates a multisig address and stores its funds there, but also gives Fred a limited account with 500 currency units per week, George 250 per week, Sam 250 per week, and every other employee 50 per week.
3. Recurring payments. I currently pay 40 USD per month for a Namecheap server. To simplify this, I might instead just give Namecheap a key to 40 USD per 30 days out of my account, and Namecheap could take the money automatically.
One challenge though: if the payments are made in a different currency from the currency in which the limit is measured, how is that to be calculated? In case 4 (indices), that's easy; just use the last index measurement at the time each transaction was made, so eg:
-> Bitstamp says: 1 BTC = 170 USD
-> send(X,Z,1,BTC)
Running total: 170 USD
-> Bitstamp says: 1 BTC = 206 USD
-> send(X,Z,2 BTC)
Running total: 582 USD
-> send(X,Z,1 BTC)
Running total: 788 USD
and so on. In cases (1 ... 3), however, it's harder; the markets are not precise, as there is always an ask-bid spread. One option is to always take the last order, but my worry is that in small markets it will be vulnerable to attacks (eg. attacker grabs all the orders down to to 0.2 CHF/BTC and then can withdraw as much BTC as desired from a CHF-denominated limited account). There are potential ways to mitigate this, but they all have their own potential vulnerabilities. One option would be to just let this vulnerability slide, and people would use indices for more security, but that has the downside of centralization. Another argument is that this really doesn't matter, as in the Bitcoin economy in practice sites like BitPay use exchange rates for their price data and they don't have problems from being scammed in the above way because the market is too deep and so an attack is too expensive. The more restrictive approach would be to allow withdrawals denominated in one currency only, and require the private key holder to make multiple limited accounts if they want to give themselves or someone else a limited right to withdraw in multiple currencies.