SET XACT_ABORT is helpful in many ways.
example: suppose you are working on a stored procedure which is doing a complex data manipulation. You though this query will run with in 1 minute when you run it from .NET or other code , but some how it took quite long time and with in one minute .NET or the code from which you run the query raised a command timeout.
Or we can say you have applied transaction in stored procedure and calling from .NET code and you have mention the command timeout in .NET .The ADO.NET program raised a timeout but still your query is running in background.
Now in such situation sometimes it happened the transaction which is running in SQL SERVER will be open transaction. Which might be cause of locking problem.
In such situation XACT_ABORT option is helpful.
By default XACT_ABORT option is off you can on it by following statement
SET XACT_ABORT ON;