http://docs.oracle.com/cd/B19306_01/server.102/b14225/toc.htm It has to do with the character set the database was created in.
For example, my database:
ops$tkyte%ORA11GR1> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET WE8MSWIN1252
is WE8MSWIN1252, an 8 bit character set. If I set my client NLS_LANG (a registry setting on windows, environment variable on other platforms) to US7ASCII - then Oracle will perform character set conversion.
On the way into the database, Oracle knows my data is 7 bit ascii data - it will convert that data into the 8 bit representation. On the way out, Oracle knows my client can only support 7 bit data and will map anything that takes 8 bits into 7 bits (eg: some characters might disappear - become question marks - because there is no mapping, no way to represent that)
Each character set supports a different set of characters - the cent symbol is part of some character sets and not others (depends on who the character set is designed for).
It is actually a rather complex question in reality. Storing "globalized" data is fairly difficult.
You would have to see what characterset your database supports - that'll let you know if you can even store that character (if that character is not part of your databases character set, you cannot store it in a varchar2)
You would have to see what characterset your clients use as well - even if the DATABASE supports storing the cent symbol - if your clients say "I use this characterset, please convert to it as we retrieve data", your cent symbol will go away for them.