I'm not sure that your explanation follows the logic of your script, but there is one thing very definately wrong.

You are setting the value of $fExcel to 1 inside your FOR/NEXT loop, which means that if it is set to 0 in your case statement and then you have another iteration of the loop it will be set back to 1 again.

Initialise the variable outside your loop and it will work better:
Dim $List       ; array of LNK files
Dim $Lnk ; array enumerator
Dim $Path ; target path
Dim $fExcel $fExcel=1


$List = DirList('C:\Documents and Settings\Thijs\Bureaublad\*.lnk', 2)


For Each $Lnk in $List
'Processing ' $Lnk ?
$Path = GetShortCutProperties($Lnk, 'Path')
'Path: ' $Path ?


Select
Case InStr($Path, 'xlicons') ; found - don't need to install
$fExcel = 0
EndSelect
Next


; Should shortcut be defined
If $fExcel
del c:\test\test1.txt
EndIf