Conversão implícita VBScript na instrução IF diferente da variável para literais?

No momento, estamos tendo um problema devido à conversão implícita em uma instrução IF no VBScript (Classic ASP) que não faz a conversão implícita da mesma maneira ao lidar com uma variável ou um literal. Alguém pode me explicar esse comportamento, por que o VBScript age dessa maneira?

Aqui está uma amostra do que quero dizer:

Const c_test = 3
Dim iId : iId = 3
Dim iTestStr : iTestStr = "3"

If iId = iTestStr Then
    Response.Write("Long variable = String variable : Equal")
Else
    Response.Write("Long variable = String variable : Not Equal")
End If

Response.Write("<br/>")

If c_test = iTestStr Then
    Response.Write("Long constant = String variable : Equal")
Else
    Response.Write("Long constant = String variable : Not Equal")
End If

Response.Write("<br/>")

If c_test = iId Then
    Response.Write("Long constant = Long variable : Equal")
Else
    Response.Write("Long constant = Long variable : Not Equal")
End If

Response.Write("<br/>")

If iId = "3" Then
    Response.Write("Long variable = String literal : Equal")
Else
    Response.Write("Long variable = String literal : Not Equal")
End If

Response.Write("<br/>")

If c_test = "3" Then
    Response.Write("Long constant = String literal : Equal")
Else
    Response.Write("Long constant = String literal : Not Equal")
End If

Quais resultados:

Variável longa = Variável de sequência: Diferente

Constante longa = Variável de sequência: Diferente

Constante longa = Variável longa: Igual

Variável longa = String literal: Igual

Constante longa = String literal: Igual

O que é bastante confuso

questionAnswers(2)

yourAnswerToTheQuestion