That's not quite true.
Per-user Puppet configuration lives in ~/.puppet or ~/.puppetlabs, depending on the version of Puppet you're running. That being said,
If you're running the puppet agent as root, which is standard practice, you are almost always going to need to run commands as root for them to function the way you expect. There's basically no scenario where you should be running a puppet command as non-root, if the agent is running as root, with the exception of non-agent/daemon tools, like `puppet module generate`.