The meaning of "text" depends on the context. For example, if you're doing SMS stuff - "text messaging" using the "Short Message Service" - on a mobile phone, you're limited to whatever character encoding is supported by the system and the phone. It's may not be Unicode, but might be if you have a [link|http://people.netscape.com/ftang/paper/SMS_and_Unicode.html|GSM] phone.
Saying everyone needs to understand Unicode and encoding and such is simplistic because it assumes every "Software Developer" is programming Windows or Web stuff that needs multilanguage support.
The meaning depends on the context.
It's my understanding that Unicode includes ASCII as a subset.
A C program doesn't care about character sets; the compiler assumes ASCII. At least it did. Some discussion about extending gcc for 2-byte Unicode support is [link|http://mail.nl.linux.org/linux-utf8/2000-08/msg00101.html|here].
A text file in a computer context doesn't exist on its own. It's a set of bytes on some form of storage media. If the file is to present non-ASCII characters to a program or a person, then it has to have a way of representing non-ASCII characters to the program or person, so an encoding method must be indicated. But then I wouldn't call it "text" myself - without any qualification, I assume "text" means ASCII.
That's my take, anyway.
HTH.
Cheers,
Scott.