Yeah, I mean I haven't really looked at the RPC stuff for Bitcoind at all... it could theoretically be done simply by generating the 100 addresses, sticking them in a DB in my billing software, then raping blockexplorer all day looking for those addresses - but that really wouldn't scale well.
I was thinking about writing up an RPC daemon which simply watched for transactions, reported them to the billing software and immediately shipped the money off to another box. But that has two downsides that immediately spring to mind: 1) it'll get eaten alive by transaction fees and 2) if the box running bitcoind gets owned, they could change the payout address and you may not notice until some BTC is gone.
I think not having the private keys anywhere online is a much more suitable idea.