With the powershell script (if you can call it that i guess so if you throw it in a file). I found the error. The access section has to have capital Read,Write,Source in it. If a rule is already there for a user it will also fail.
Shouldn't make a difference, but I've been running it from the IIS powershell provider (extra install).
Here's a copy of the proper code. I just ran this one (after removing the permission it added earlier, with no issue) anyone should be able to copy and paste this into a powershell command line:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$serverManager = new-object microsoft.web.administration.servermanager
$config = $serverManager.GetApplicationHostConfiguration()
$authoringRulesSection = $config.GetSection("system.webServer/webdav/authoringRules", "Default Web Site/site123")
$authoringRulesCollection = [microsoft.web.administration.ConfigurationElementCollection]
$authoringRulesCollection = $authoringRulesSection.GetCollection()
$addElement = [microsoft.web.administration.configurationelement]
$addElement = $authoringRulesCollection.CreateElement("add")
$addElement.setAttributeValue("users", "domain.net\user123")
$addElement.setAttributeValue("path", "*")
#the line below is the line that had to be changed
$addElement.setAttributeValue("access", "Read,Write,Source")
$authoringRulesCollection.Add($addElement)
$serverManager.commitChanges()