One of the benefits of installing to Program Files is that is exactly where the user expects it to go. Usually users go here first to look where the program is installed. The biggest downside is that the user needs administrative privileges, which isn't always required by the program.
Some apps install to AppData so employees at companies can use the app. Employees are often assigned to Standard user accounts, and they can't install anything that lands in Program Folders, because it needs admin privileges for the installation.
I wonder, why some install to %ProgramData% instead of %AppData%? One game installs a mod to %ProgramData% and people have constant problems running it, so the the dev says, that they have to run it as admin. It can be solved by taking ownership, but it does not make sense then.
EDIT: P.S. There is also %LocalAppData%, so it is only getting complicated.