However, some of the gene lists are very large and I suspect this is causing my gene-set enrichment to fail to find many significant enrichments due to how the normalisation step works. What is the most appropriate way to systematically deal with very large gene-lists in GSEA?
From the GSEA User Guide:
"Nevertheless, the normalization is not very accurate for extremely small or extremely large gene sets. For example, for gene sets with fewer than 10 genes, just 2 or 3 genes can generate significant results. Therefore, by default, GSEA ignores gene sets that contain fewer than 15 genes or more than 500 genes"
IMO, in those cases you could look at ES instead of NES. Regardless, within the function fgsea, you can set the parameters minSize and maxSize. From the "quick guide" on github it shows the recommended parameters to be 15 and 500 like you mentioned.