EmailName field and EmailDomain field with calculated field EmailAddress?
If you are up for some scripting you might be able to set something up with OnObjectKeystroke, but you might also find it much simpler to just enable "auto-complete using existing values" on the Inspector's data tab. This won't do exactly what you describe but as you enter more and more email addresses, the system becomes able to auto-complete with existing email addresses--which can result in much the same results.
You can also put a button on your layout that, when clicked simply appends your company domain to the end of the user entered email address.
Good ideas! Not sure I can handle the scripting, that would be the most professional or elegant solution probably. I'm giving the "auto-complete" a shot for now and I'm starting to see how it could work. Not sure though if it'll get clunky once there are ton of contacts in there, and it tries to pop up a loooong list of every name in the database starting with that certain letter (?). Anyway, worth trying. The button idea is good, too, otherwise.
Auto-complete from existing values should not pop up any list of values. If you define the field with a drop down list and enable auto-complete, then you can get a long list of values that filters down to fewer and fewer matches as you type.