Working with transactions

Contoso has several mission-critical processes that are starting to cause problems. Users are reporting increasingly frequent processing errors. Additionally, there are several problems with partial or incomplete records being created. For instance, users are receiving Order Processing Failure messages and then getting tracking numbers for their order.

What would make an operation a good candidate for a transaction?
Why not make every operation transactional?
What considerations would guide the choice of transaction implementation?