In Gentoo Linux we use a common ebuild format that allowes to add native dependencies to packages.
To create a ebuild from cabal file we use tool called hackport [1].
This approach allow to bump dependencies when some authors are to lazy to bump them themselves,
even in presence of pull requests, and add compatibility patches. Also it's possible to create a desktop-icons,
additional files, filter test/bench programs that should not be installed into system. Also it supports a dependency
on package flags and profiling.
However this approach doesn't scale on other distros in a easy way, one possibility is to create static
packages using emerge, but this area require some more research.
[1]
http://hackage.haskell.org/package/hackport--