I believe the whole problem stems from the security model used by all major OS's today. They all use IBAC (Identity Based Access Control) and this model has a few drawbacks, one being that a program started by a user has the same access permissions as that user. Not really sure what the solution would be, replacing the security model probably isn't a viable option as that will undoubtedly break all the existing software we use today.