As discussed with j3h, the Haskell Platform's flavor of cabal-install will generate a ~/.cabal/config with root-cmd: sudo by default. This setting currently gets picked up for sandboxed builds, resulting in password prompts and/or root ownership of some files/directories in the sandbox. Since the root-cmd should only be useful for truly --global builds, so cabal-dev should probably ignore it.
Release candidate fix at https://github.com/j3h/cabal-dev/tree/use-default
j3h: the changes look good to me. Pull the trigger!
(In a good way.)
The 0.9 release has been uploaded to Hackage.