Like I mentioned in another post, the human factor is something I haven't found a way around. The hacker can be deterred/slowed enough that damage is minimized, but there's really nothing to stop an owner from inserting code to steal passwords or redirect transactions and such.
The only safeguard is still: don't store more coins than necessary!
Yes, the human factor can't be eliminated but I think it is dramatically reduced if the transaction signing takes place on the client side, in browser code. If the correct javascript is running, the owner doesn't have access to anything giving him the ability to take the funds.
What the owner does have access to do, is to serve up the wrong code and steal the funds that way. But doing so immediately exposes the actor to the potential of getting caught (and before he has even been able to profit from it).
You still want to research and trust the site owner, but its a shit ton better than the mybitcoin or bitomat fiascos. You or a 3rd party could also keep backups of the encrypted accounts, in case the site was shut down by the hosting company/govt.
EDIT: Or, best case- open source team (A) hosts the code/front end, and site operator (B) hosts the database