The main difference between MISSOVER and TRUNCOVER occurs when you have variable length records and are using formatted or column input. TRUNCOVER reads "partial" data that falls at the end of the record, whereas MISSOVER sets the value to missing.
An example to further clarify: An INPUT statement requests to read exactly 5 bytes starting at position 18, but a data record is only 20 bytes long. TRUNCOVER will treat bytes 18-20 as valid data. MISSOVER sees that bytes 21 and 22 are not present and considers the field to be invalid. If the record had been 17 bytes long, both TRUNCOVER and MISSOVER would produce a missing value.
Variable length records were pretty rare in the early mainframe days of SAS, but they are nearly universal in Windows and Unix-family systems. As a general rule, TRUNCOVER should be used in most modern SAS applications.