Keep in mind that a normal text field is not designed to contain HTML entities, but UTF-8 characters should be fine, provided that you make sure the encoding is setup correctly in both the CM and CD side.
Then as to how you get these characters in there, well you could explain your editors how to work with ALT codes or have them use the Windows character map, but if you would like to provide something like the Special Characters popup in the RTF field, then you can use Custom URLs (requires login) for that.
I've created an example on how to use Custom URLs to select items from the SDL Tridion navigation tree on SDL Tridion World. You can perhaps use that as a base, but since you can probably get away with a simple hardcoded list of characters in there, it is going to be a lot easier.
See below for a very simple example of such a Custom URL page. Keep in mind since this page is using UTF-8 encoded characters (extended ASCII values), the HTML file must be saved as UTF-8 for it to work correctly.
<html>
<head>
<title>Insert a Character</title>
<script type="text/javascript" language="javascript" src="/WebUI/Core/Controls/Popup/PopupInit.js"></script>
<script type="text/javascript" language="javascript">
function insertValue(value) {
var fields = window.dialogArguments.getFields();
if (fields && fields.length > 0) {
var content = '';
if (fields[0].getValues() != null &&
fields[0].getValues()[0] != null &&
fields[0].getValues()[0].length > 0) {
content = fields[0].getValues()[0];
}
fields[0].setValues([content + value]);
window.close();
}
}
</script>
</head>
<body>
<h1>Please choose a Character to insert</h1>
<ul>
<li><a href="javascript:insertValue('é')">Insert é</a></li>
<li><a href="javascript:insertValue('á')">Insert á</a></li>
</ul>
</body>
</html>