Paired-end reads should always be in the same order in both files when passed to an aligner. Typically, if the aligner sees a read whose mate does not appear at the same position in the other file, it will, at best, ignore that reads mate and treat the read as single-end. However, many aligners will actually complain (and possibly quit) when they encounter such a situation. Most quality-control pipelines have the ability to output reads whose mate failed QC to a separate file. The most common approach to deal with such reads is to give the aligner the QC-ed read pairs (in the exact same order in both input files) and then to provide a separate file of un-paired reads (e.g. reads whose mate failed QC). Many aligners (including Tophat, I believe) allow you to specify a set of files for paired-end reads as well as a separate file for unpaired reads in the same run.