One of the many strong principles in interface design is that of consistency: the idea that the interface components use obvious language, behave as expected given the context and similar components elsewhere, and generally fit in with the users expectations. A million books, lectures and workshops have been devoted to this subject, so discovering more on this is left as an exercise for the reader. As important as consistency is, sometimes user interfaces are best sculpted through inconsistency.
Mobile phones represent a good counter-example to traditional thinking. Many of the important cues provided by the interface are not in the form of visuals, rather they are audio based. Since your phone likely spends most of its life in a pocket, ringtones and beeps are used to communicate information. If the phone rings, you know someone is calling. If it makes a certain series of beeps, a text message is waiting.
Let me tell you a little story though: a few weeks ago I was at a fairly relaxed but sizable gathering. As one would expect, everyone had a mobile. As one might not have guessed, there was an improbable number of Motorola phones present. This would have been fine if one of the batteries hadn’t gone flat; a low battery warning beep is standard across most Motorola phones. Every 5 minutes when this beep went, everyone checked their phone like their Pavlovian training had taught them. Amusing, but not particularly great design (especially since you can’t turn it off without switching the offending phone off, and that is outwith your control).
What can you do about this? I’m not sure. The first suggestion I have is to create a multiple cues for each major interaction. Say you have 10 ringtones, 10 alerts for messages, and so forth. You can them take the phones in-built ID’s (they have several that are unique for our purposes) and hash them to a set of these cues. Most of the time, chances are that users won’t get cues that are not for them.
Beyond that, I’m not sure. It’s an interesting area though.