Notification on long-running query or deadlock in SQL Server 2008 R2?
You can configure alerts for both of these with SQL Agent.  Create a new alert and select type "SQL Server performance condition alert"

For long running queries, choose Object "MSSQL$InstanceName:Transactions" and Counter: Longest Transaction Running Time. Configure the values, and the alert notification options, and you're good to go.

For deadlocks, the Object is "MSSQL$InstanceName:Locks" and the Counter is "Number of Deadlocks/sec"

If you want more fine grained control of the deadlock notification, check this out:
http://www.sqlservercentral.com/articles/Administration/3243/