I work on software for brain-injured folks. So it's a delicate balance between showing lots of help (because they have difficulty understanding even a simple interface) and showing too much help (and it overwhelms them).
One approach we've used is to show a tip with an "x" to close the tip.
But many users don't see the "x" or know what to do.
So I am considering this approach:
IF NotUsedThisFeature (FeatureName, DaysSinceLastUsed*) then ShowTip
This is for where we could expect with 99% certainty that they'd be using this feature a couple of times every $DaysSinceLastUsed days.
- DaysSinceLastUsed could also be LOGINS I suppose. But the reality is that if it's been 30 days since they used the program or 30 days since they used the feature, then they have probably forgotten the feature.