From my understanding with failover clustering, only one machine is actually working, which means the other one(s) are sitting idle. So why would one use failover clustering instead of using a load balancing style with Windows Server 2012 to gain better performance with all the machines working as one yet still maintain high availability.
Do some situations work better with one over the other?
The world is full of applications that were never designed with clustering in mind and terrible things happen when you try to run multiple instances of the application concurrently.
But the application might be critical enough that having a standby server is a viable solution to meet your availability requirements.
Clustering software will typically ensure then that only one single instance of the application is running at any one time and will start the application on a backup node when the application on the primary node has stopped (either because of scheduled maintenance or because of unplanned events).