Esto no lo soluciona del todo, pero espero darte una pista para que sigas trabajando.
Si el numero de espacios es impar te muestra solo un espacio en blanco,
pero si el numero de espacios es par te une las palabras.
<%Function InicialEnMayusculas(cadena)
'Descomponemos la cadena, en subcadenas,
'para lo cual indicamos el delimitador " "
If InStr(cadena, " ") Then
cadena =Replace(cadena, " ", "", 1, -1, 1)
Else
End if
cadena = Split(Trim(cadena), " ")
'miramos las palabras que componen la cadena,
'para lo cual le decimos que recorra desde el primer
'valor de la matriz, hasta el último
For i = 0 To UBound(cadena)
'ponemos la inicial en mayúsculas, y el resto en minúsculas
cadena(i) = UCase(Left(cadena(i), 1)) & LCase(Right(cadena(i), Len(cadena(i)) - 1))
Next
'Unimos las cadenas
cadena = Join(cadena)
InicialEnMayusculas=cadena
end function
%>
<%Cadena="pepito pérez"%>
<%=InicialEnMayusculas(cadena)%>