If the external disk has a bootable system on it, try booting from it, then repairing with:
Code:
diskutil resetUserPermissions / `id -u`
It would only be necessary to run from the external for as long as it takes to do the repair.
If the OS (or user folder) isn't the same version as one is booted from, it's possible that diskutil is overly cautious about attempting repairs. This could be the reason for the error message, but that's just a guess, because we don't know which OS versions are being used here. That could be useful info to post.