An unversioned file is one that doesn't contain a version number (just about anything that is not an executable).
Windows Installer will not normally overwrite a newer version of a versioned file with and older version, but for an unversioned file it doesn't care about the timestamp of the file, if its "unchanged" it will happily overwrite a newer version with an older version. This can create a number of issues, some examples:
You can determine whether a file is unversioned or not by looking at the "Version" column of the "File" table table using "ORCA" or similar. The generated HTML also reports the version number (if one exists). A modified file is one whose "create" and "modify" date/times are different.
These are some possible solutions:
This technique would be useful where you always want the latest file installed, the installation of an older version of your product will not overwrite it.
Note that if your file is versioned but it is incorrect then there are programs which you could use to update (patch) the version number in the binary so there is no need to lie (look for "StampVer.exe").
This technique would be useful where you always want the file in the product being installed to be installed.
This technique would be useful where you have data files associated with a binary.