Understanding preloaders
Why and how
Depending on the amount of notecard content, directly applying a theme as it is read from the notecard can be slow and result in a sometimes frustrating experience for the end user.
This actually depends on the SL server which will feed the script with notecard lines and might be impacted by the overall performance of the sim (because of other scripts, avatars in the sim... in one word: lag).
Since we cannot really speed up notecard loading, the solution is to load a theme into script memory prior to applying it. This way, applying an all-ready theme is almost instantaneous since all the tedious loading job is already done. This is how preloaders were born.
Drawbacks
Of course this solution has a price in terms of increased number of scripts and memory usage of the system, which in turn may have an impact on how your objects are seen by naive "anti-lag" systems that just base their evaluations on the amount of scripts and memory - and not on the actual lag created.
Another risk with preloaders is that you may encounter out-of-memory conditions with very large themes that do not fit in the preloader's memory. If this happens you will get the infamous "stack/heap collision" error (which requires the script to be reset or reinstalled). Ways around this include:
dividing your large themes into several smaller sub-themes that can be loaded by several preloaders (that can be triggered at the same time!);
reverting to using the "old" way of applying themes as they come out of their notecards, or use LSD (which also has a global memory limit, of course).