Hello, I have RNAseq data with a major perturbation where we expect a large number of genes (>50% of the dataset) to be differentially expressed. I'm aware that this can be a problem for TMM normalization which assumes that the majority of genes are not DE between samples. However, I haven't seen any other approaches suggested for when this assumption isn't met. 

I suspect it may be necessary in our data because, in addition to the large perturbation, we observe systematic differences in the normalization factors between conditions that are independent of library size. This leads to sign-changes where the cpm data show genes as down-regulated but the normalized data show the the genes as up-regulated. I understand this could be produced by outlier genes (what TMM is trying to correct for), but given the genome-wide differences I'm unsure if applying the correction here is appropriate. 

Any advice or suggestions regarding a better way to normalize datasets with a major perturbation? 
You can always inspect the MA-plot to judge how normalization goes. If you have a set of control genes that you can confidently identify as probably non-DE then you can just run the TMM calculation on these and then feed this back to the full dataset. After all the edgeR procedure is to calculate CPM based on library size and then correct this for composition with these TMMs. Or you can try to use only genes with large logCPMs as these usually tend to be rather non-DE. Can you show an MA-plot?