It changes the default locking strategy from how the Sybase/SQL Server family have worked forever. It'd break all my applications, all the application I know of at my shop, and corrupt a lot of important data.
Read the Wikipedia article completely: do you want the code behind your banking app to use this isolation model?
In general, therefore, snapshot
isolation puts some of the problem of
maintaining non-trivial constraints
onto the user, who may not appreciate
either the potential pitfalls or the
possible solutions. The upside to this
transfer is better performance.
It's a compromise like most database designs. In my case, I can deal with the locking waits/deadlocks (rare) as a price for easier and more "out of the box" data integrity. I've yet to come across a problem or issue where I see snapshot isolation as a solution.