I think that the simplest way is a hiding 2 other fields for user after the choosing value on a first field, e.g. User choose value into Account field, after that you run js code into your page and hide the fields Contact & User. I think it's enough.
The another way is validate it on the fly, the trigger is same as on first case, but for now you look into 2 another fields and if one of their has a filled value you show error message on page and reset the entered value to null.