Text input is just a background menu using triggers; when you're selecting a letter, you set a variable to a value that corresponds to its ASCII value, and then you can display ascii characters in text boxes using #variable#. Getting the text box to stay on the screen though requires an ejected engine and some mods.
Scrolling menus are just background menus that have the camera move smoothly to the next section of the screen - it's all one large scene!