Ok, your using that method so there will be a null character returned and when you append " the great" at the end it gets cut off because of the null.
VB Code:
  1. Option Explicit
  2.  
  3. Private Enum EXTENDED_NAME_FORMAT
  4.     NameUnknown = 0
  5.     NameFullyQualifiedDN = 1
  6.     NameSamCompatible = 2
  7.     NameDisplay = 3
  8.     NameUniqueId = 6
  9.     NameCanonical = 7
  10.     NameUserPrincipal = 8
  11.     NameCanonicalEx = 9
  12.     NameServicePrincipal = 10
  13. End Enum
  14.  
  15. Private Declare Function GetUserNameEx Lib "secur32.dll" Alias "GetUserNameExA" _
  16. (ByVal NameFormat As EXTENDED_NAME_FORMAT, ByVal lpNameBuffer As String, ByRef nSize As Long) As Long
  17.  
  18. Private Sub Command1_Click()
  19.     Dim sBuffer As String, Ret As Long
  20.     Dim current_user As String
  21.     sBuffer = String(256, 0)
  22.     Ret = Len(sBuffer)
  23.     If GetUserNameEx(NameSamCompatible, sBuffer, Ret) <> 0 Then
  24.          current_user = Replace(Left$(sBuffer, Ret) & " the great", Chr(0), vbNullString)
  25.     Else
  26.          current_user = Replace(Environ("USERNAME") & " the great", Chr(0), vbNullString)
  27.     End If
  28.     MsgBox current_user, vbOKOnly
  29. End Sub