You may be able to use the OnObjectExit script trigger for specific fields to perform a script that places the cursor in a differnt field than the tab order. That way you can use the tab order for your most typical tab order, but be able to make it context sensitive to redirect the cursor as appropriate.
A more sophisticated approach is to use the OnObjectKeystroke trigger and check for the code that matches pressing tab, return or enter and using those events to redirect the cursor. This approach allows you to select any field you want by clicking, but redirects the cursor as needed when you use a keystroke to exit the field.
(Note this trick should be used sparingly, too many unexpected cursor jumps can confuse your users.)