Both Vic and Dennis are correct.
Since the additional hardware is only a switch, the system won't know it's not there
(hmmm... lemme go check that (there are two switches))(see update below)
As Vic said, the only "down-side" of programming before installing is the inability to test it ... but
If time/circumstances/money say "program it now, install it later", i'd certainly do the programming now.
(added: with qualms ... see below)
update:
Here is the switch schematic: (2006)
It's drawn in the "hands are not touching the switch" configuration.
Notice how one set of contacts *are* connected ... the "Off" to the 12v supply.
That's to avoid "electrical noise" turning ON cruise control accidentally.
BUT ... also notice the full-width switch across the top ... that's another belt-and-braces signal ...
It may sense (from "noise") that (let's say) "resume" has been pressed ...
...but it should not *act* upon that until "verify" has *also* made contact.
So, with no hardware, you *are* sailing in a slightly ambiguous ocean, but there is/are some provision for the ECM to cross-check what it's seeing.
I'd still probably be willing to "program first", but i'd try to stay aware of *watching* for "how'd it get into cruise?" behavior afterwards.
--dick