Esto debería funcionar para las combinaciones "Firstname Lastname" y "Firstname Secondname Lastname".
DECLARE @name AS NVARCHAR(50)
SET @name = 'Firstname Middle Lastname'
SELECT SUBSTRING(@name, 1, 1) + --First initial
SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) + --Middle/Last initial
CASE WHEN 0 <> CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words
THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1) --Last initial
ELSE '' --Have to add empty string to avoid NULLing entire result
END
Por supuesto, si los usuarios tienen un espacio en uno de sus nombres, por alguna razón, tendrá problemas para analizarlo, pero sospecho que ese sería el caso de todos modos cuando no almacene sus nombres en campos separados.