The thing to remember is there are 2 names in the system. There is the name that prints on boarding passes and is horribly limited on characters, then there is the secure flight name.
The secure flight name is checked against the no fly list. If you are asked for secure flight information you should provide the full name. Until boarding passes can accommodate longer names it is impossible for TSA to enforce the middle name thing. The way boarding passes print names it adds the middle name/initial to the end of the first name so if Robert Alan Smith only has Robert A. Smith on his DL maybe he books a ticket as SMITH/ROBERTA or some agents book it as MRSMITH/ROBERTA. Still very ambiguous
My passport card has my full middle name. My boarding passes are just last/first. works in the US and Canada.