All the controllers are generally made in the same cheap way.
Possibly a design influenced on the fact plastic is always going to break and making their games addictive enough so that you buy a new one!
If you open up the casing by removing the screws you will see that the PCB is mounted in the middle of the plastic neck. It is held in place by some plastic fixings, these will have snapped and the board will have fell into the empty space in the neck.
So when you push the buttons down they are either not making contact with the button pad on the PCB or the actual board is being pushed down into the neck when you press the buttons (which explains why they work when you push down hard, thus making contact eventually). The only other mechanical cause could be that the rubber feet that make contact with the PCB have come off or are dislodged.
Either way opening up the neck and looking at it will wield some good results for you, but i hope i have pointed you in the right direction.