You could write a script that checks the value just entered against the values in the value list. If it's not in the list, it can switch to the layout for your table of values, create a new record and enter the new value. The script can also ask you to confirm that you want to do this before doing it if you want. Set this script up with an onObjectExit script trigger and it'll check every value just after you enter it.
How would I write this script as in what steps would I include so that it checks the value entered against the values in the list?
Your "test line" in the script might look like this:
If [ IsEmpty ( FilterValues ( ValueListItems ( get ( Filename ) ; "YourValueListNameInQuotes" ) ; YourTable::YourField ) ) /* text entered is not in value list */]
Notes: ValueListItems requires the name of your file and your value list. Using Get ( Filename ) insures that changing the name of your file doesn't cause this function to fail. If you later change the name of your value list, this function will return null and your script will treat every value as not being a member of the value list.
Edit Note: I spotted an omission in the above expression just after committing the post, but then lost internet connectivity for nearly half an hour... :-(
I am having some difficulty writing this script properly. I would appreciate it if you could help me with this.
What have you got so far and where are you having difficulty?
Well first I selected Commit Records/Request which gave me the step Commit Records 
Then I selected If which gave me If 
In this step I specified IsEmpty ( FilterValues ( ValueListItems ( Get ( FileName ) ; "ModelITEM" ) ; Item::Model ) ) /* text entered is not in value list */
Now how would I ensure that a new model would add to the value list?
If [IsEmpty ( FilterValues ( ValueListItems ( Get ( FileName ) ; "ModelITEM" ) ; Item::Model ) ) /* text entered is not in value list */]
Show Custom Dialog [Item::Model & " is not in the list. Add it?"] //name button 1 "Yes", button 2 "No".
If [ Get ( lastMessagechoice ) = 1 /* button one was clicked */ ]
Set Variable [ $NewModel ; value : Item::Model ]
Go To layout [//specify layout of value list table]
Set Field [Yourvaluelisttable::Model ; $NewModel]
Go To Layout [Original Layout]
Thanks, worked like a charm!
Hello. I have been looking for a way to complete this task & just stumbled on this.
Should this be a script or a calculation/ validation in the field name in 'manage'.
Also, when the new record has been created for the value list, will the new value still appear in the drop down on the original layout.