Jens,
I think the logic for the first comparison has to be reverted. The right part has to be compared. For the rest, the left part has to be compared like you do.
Here is a proposal for a modified CompareVersions() UDF
Function compareversions($Ver1, $Ver2, OPTIONAL $Limit)
   
DIM $sourcever, $destver, $level, $maxlevel, $pad, $maxpad
   
   
If Trim($ver1)='' Or Trim($ver2)=''
        $compareversions=-2
       
Exit -2
   
EndIf
   
   
If VarType($limit)
       
$limit=Val($limit)
   
Else
        $limit=999
   
EndIf
   
   
If InSTR($ver1,'.')
       
$sourcever=Split($ver1,'.')
   
Else
        $sourcever=Split($ver1,',')
   
EndIf
    If InSTR($Ver2,'.')
       
$destver=Split($ver2,'.')
   
Else
        $destver=Split($ver2,',')
   
EndIf
   
   
$level=0
   
$maxlevel=UBound($sourcever)
   
If $maxlevel($destver)
       
$maxlevel=UBound($destver)
   
EndIf
    ReDIM preserve $sourcever[$maxlevel], preserve $destver[$maxlevel]
   
Do
        $ver1=Trim($sourcever[$level])
       
$ver2=Trim($destver[$level])
       
If Len($ver1)>Len($ver2)
           
$maxpad=Len($ver1)
       
Else
            $maxpad=Len($ver2)
       
EndIf
        For $pad=1 To $maxpad
            If $level = 0
               
$ver1='0'+$ver1
                $ver2='0'+$ver2
            Else
                $ver1=$ver1+'0'
                $ver2=$ver2+'0'
            EndIf
        Next
        If $Level = 0
           
$ver1=Right($ver1,$maxpad)
           
$ver2=Right($ver2,$maxpad)
       
Else
            $ver1=Left($ver1,$maxpad)
           
$ver2=Left($ver2,$maxpad)
       
EndIf
        Select
            Case $ver1>$ver2
                $compareversions=1
           
Case $ver1<$ver2
                $compareversions=-1
           
Case 1
               
$compareversions=0
       
EndSelect
        $level=$level+1
   
Until $level>$maxlevel Or $compareversions<>0 Or $level>$limit
    Exit 0
EndFunction

 Code:
CompareVersions("0100","01") ?
CompareVersions("01","0100") ?
CompareVersions("100","1") ?
CompareVersions("1.0","10.0") ?
CompareVersions("10.0","4.0") ?

returns
 Code:
1
-1
1
-1
1