The ETC fork would have been successful at any non-zero support level from people with the ability to mine. And since any CPU can mine (just inefficiently), any fork can get a mining baseline. That may not give you a ton of security but it works.
People who run full nodes are the ones that decide hard forks.
> The ETC fork would have been successful at any non-zero support level from people with the ability to mine.
It would be economically irrational for people to send transactions to a fork with a single miner since that miner could unilaterally rewrite any transactions as they see fit. This is why I think miners have the ability to control forking.
A fork is generally considered successful if it carries economic value. That is decided by the amount of users transacting in the currency. Working exchanges are a requirement for this, but not enough (as has been experimentally demonstrated).
> A hard fork is determined by the users, who have to upgrade their software.
Who are 'the users' here? Light clients? Users of wallets? None of these have the power to adopt a fork, soft or hard. The collective action of the miners (or validators) defines which chains still retain liveness. For example in the hard fork between Ethereum Classic (ETC) and Ethereum (ETH) ETC was able to exist only because miners chose to to mine it. This in turn did give non-mining users the choice of how to distribute their demand and create extrinsic value for the ETC token. I wouldn't say this gives non-mining users any control over a hard fork since it happens after-the-fact.
> If the software updates automatically, then the power of hard forking lies with the developers
I don't know of a node distribution for Ethereum that works this way.
The core developers have power as in knowledge and power as in authority, the later being the traditional form of political power.