Specifically the situation I'm thinking of is you have a large asset like a .psd that is 200 MB. An artist goes and changes a few pixels and checks it in. Assuming deltas are not kept thats 200 MBs that anyone that updates to his clone/branch will have a history off. Given a full development cycle that is a LOT of information to pull for each client.
What I would like is the ability to mark files like these as "keep history on server", much like traditional centralized VCSs like SVN or Perforce. You may lose the benefits of a DVCS for these files but I am willing to accept that as long as I can use one VCS (as opposed to 1 for assets and 1 for code).
Any suggestions on how to do this (if even possible) would be greatly appreciated.
For Mercurial, you can use bfiles extension (or one of the others that are listed on that page). Then only file metadata is stored inside the repo, and the content of big files is kept on a central server. I haven't used any of those extensions, though, so I can't tell which one would be the best choice.