ok, supongamos que el formulario tiene "nombre", "apellido" (ambos obligatorios) y "edad" (opcional)
Código:
<form metod="post" action="verifica.asp">
Nombre * <input type="text" name="nombre"><br>
Apellido * <input type="text" name="apellido"><br>
Edad <input type="text" name="edad">
<input type="submit">
</form>
Luego, en la página "verifica.asp", comprobás que los datos obligatorios hayan sido completados. Si fueron completados, seguís para adelante (los insertás en la BD, por ejemplo). Si alguno no fue completado, volvés a presentar el formulario pero esta vez aclarando que el campo dato es obligatorio marcándolo en rojo:
Código:
<%
nombre = Trim(Request.Form("nombre"))
apellido = Trim(Request.Form("apellido"))
edad = Trim(Request.Form("edad"))
If nombre <> "" AND apellido <> "" Then
'Ambos fueron completados, así que proceder normalmente.
Else
'Al menos uno no fue completado así que presentar nuevamente el formulario
%>
<form metod="post" action="verifica.asp">
<% If nombre = "" then response.write "<font color='red'>" %>Nombre *<% If nombre = "" then response.write "</font>" %> <input type="text" name="nombre" value="<% = nombre %>"><br>
<% If apellido = "" then response.write "<font color='red'>" %>Apellido *<% If apellido = "" then response.write "</font>" %> <input type="text" name="apellido" value="value="<% = apellido %>""><br>
Edad <input type="text" name="edad" value="value="<% = edad %>"">
<input type="submit">
</form>
<% End if %>
Bueno, algo así