I'm not sure which issues you're running into, but for what it's worth, I've had a lot better success using the newer cabal sandboxes[1] than just running `cabal install foo` all the time. (If you're from the Ruby world, it acts a lot more like bundler with `--standalone`).
Previously, I had more issues with conflicting version constraints which I think is more of an issue with library authors and not necessarily cabal itself.
I'd love to, but Haskell Platform ships with an old version of Cabal that doesn't have sandboxes. The new version of Cabal itself doesn't compile on the Mac. (In keeping with the theme of "nothing compiles.")
Edit: At least, I can't get the new version of Cabal/Cabal Install working on my Mac.
There was a relatively serious bug caused by Mavericks' clang being a non-standard CPP, but I think that's fixed in newer versions of GHC. It's certainly possible to get a Cabal compiled on Mac, though.
Against the usual recommendations, I install the Haskell platform with Homebrew. After that a 'cabal update ; cabal install cabal-install' gives a newer version without any problems.
Previously, I had more issues with conflicting version constraints which I think is more of an issue with library authors and not necessarily cabal itself.
[1] - http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html