You are going to need a virtual on-screen keyboard because of the volume of text, the need for upper and lower case letters, and if users will typing frequently.
Using only a single button to cycle through letters is crippling, and will result in a lot of frustration if you miss a letter and have to loop back around. Similarly, having to find the blank space character to delete a mistake is going to be hard, and you will probably have to explain that somewhere.
A 120 character limit is about a sentence or two, so users will need to be able to see the entirety of what they've typed rather than only the nearest couple characters. It's easy to make mistakes when focusing on only a letter at a time. ("Am I at the 2nd or 3rd 'i' in Mississippi?") Adding in the need for upper and lower case letters along with numbers and symbols, and you also need a way to indicate what mode you are in. Lastly, if users need to use this interface more than once per month you want to avoid as many annoyances as possible. (Less frequent use can tolerate a higher level of frustration.)
Most video game consoles have similar limitations (directional movement instead of a full keyboard), and they solve the problem with an on-screen virtual keyboard. Users navigate the letters with directional buttons and select them with another button.
PS3 Virtual Keyboard from http://manuals.playstation.net/document/en/ps3/current/basicoperations/keyboard.html
Xbox 360 Virtual Keyboard from http://www.groovypost.com/howto/xbox-360-set-up-use-twitter/
I tend to prefer the PS3 keyboard because it uses a QWERTY layout by default, and has a place for dictionary suggestions to speed up the input. (Alphabetic order should be avoided because users don't know where the breaks in each line occur, and most have experience with standard QWERTY.) Both Xbox and PS3 virtual keyboards have shortcuts that use additional buttons on their controllers, but those are optional.
In your scenario, you would probably want to have a click of the main button be used for selecting a letter. (This heavily depends on how easy it is to click the button without triggering one of the directions.)
If use of a screen is not practical, or the button input is too imprecise to spell things accurately, it may still be possible to do what you need.
- Alter the visual style of the text field so that it does not resemble one they would see in a web browser. This includes use of a monospaced font, and removing the standard text cursor ( | ).
- Use up and down to cycle through the letters. Draw arrows above and below the currently active letter to indicate how to select a different character.
- Use left as backspace, and don't have a movable cursor. Input always occurs at the end of the text.
- Use right to save the current letter and move to the next. Each new letter should start with the blank space character, or 'A' as long as users can scroll down to get to the space.
- Clicking the center button changes the mode. Show this mode on the screen somewhere.
This should allow basic text entry without making mistakes overly punishing. Users will want to type as little as possible, though, so expect lots of abbreviations and improper capitalization.