Can Inno Setup respond differently to a new install and an update?

Yes, this is easy to do with scripting.

Just write

[Run]
Filename: "http://example.com"; Flags: shellexec; Check: NotAnUpdate

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpInstalling then
    IsUpdate := FileExists(ExpandConstant('{app}\TheFileNameOfMyApp.exe'));
end;

function NotAnUpdate: Boolean;
begin
  result := not IsUpdate;
end;

Leave a Comment