Is there a service that automatically "sweeps" funds to another address whenever they are sent?
You could make one using bitcoinj which listens for txns, then triggers a spend.
Perhaps you would use rpc to control bitcoind to make the spend, and only use bitcoinj for the listening side ?
That should (I haven't done it but hope to soon) not require any private keys to listen to the wallet.
See this: Listening to all transactions of the Bitcoin network 

bitcoind appears to be pull oriented, while bitcoinj can be set up to be push related, sort of.