How about making it so that, for instance, sickness blocks increases in Toughness and Strength (and perhaps one or two other stats), so that you can't actually train them while sick? Negative training would still work, but you would be unable to increase those stats via any sort of training while sick. Some other stats (such as Learning) would still be trainable, of course. Training before getting sick can lead to stat boosts while sick, though.
Same logic, naturally, for ring of weakness - wearing such a ring would block training of Strength.
This could even be done in a way that minimises the ability to "scum" stat training, without causing any problems with coding. Make it so that, if a stat is reduced by more than "x", training gets blocked. So, perhaps "x" is 5 - if your stat is modified down by 5, then you can still train the stat based on the current (base value minus 5) value... but if it is modified down by 6, then all positive training gets blocked for that stat. Sickness and Starvation, as special cases, would always block the positive training, at least for some stats (perhaps all of them).
What this basically means is that spending extended time with more than a slight negative modification to your stats (or extended time while sick or starving) will cause your stats to lower (due to negative training) and keep you from improving them. It blocks sickness, starvation, rings of weakness, theoretical use of amulets of the cold heart/mummy wrappings/vile clothing (I'm assuming nobody ever bothers trying to train charisma or appearance with Garth), and moloch armors.
It seems logical to me - if you're sick or starving, you're probably not going to increase your strength by working out. And if you're wearing something that is keeping your dexterity significantly depressed, you're probably not going to become more dextrous while wearing it.
If you go with "x" being 5 for all stats, then if you suppose that natural training can get you to 25, this caps all "stat reduction" training at 30. Perhaps for a negative stat modification between 1 and 5, the effect of positive training is reduced - say, by 15% for each negative stat mod point. So if your strength stat is down by 3, then any positive strength training done is reduced by 45%. If it's down by 5, then positive strength training is reduced by 75%. And if it's down by 6 or more, then all positive strength training would be ineffective.