Typically, you use user transaction with session beans when you decide to use BMT (bean managed transactions). You cannot use user transaction with entity beans because their transactions are always container managed. You can use user transaction with servlets if you want control over the transaction boundaries.
User transaction is not specifically meant for EJB only. It doesn't come with EJB but is an API that has to be supported by the J2EE server vendors. Actually it is the Java Transaction API (JTA). JTA classes are in the package javax.transaction. They can be used with EJB 1.0 also but at the time of EJB 1.0 the package was javax.jts.