For reading dirty data you can set isolation levels at a Connection level using
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Do any of these help with locking / blocking issues at a global level?
ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON
or
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON