IVM can already go up to and past a million (there is a million prompt)..
'2000','3000','4000',etc. are not necessary...
IVM will automatically combine 2 or more prompts to read out a number. E.g. "five"+"thousand"+"thirty"+"six"+"dollars"+"sixty"+"eight"+"cents" to read out "5036.86"
The only case where this wouldn't work properly is if your IVR was in a non-English language that has a different format/structure for reading out numbers.
In this case you could use Text To Speech as an alternative using a TTS Voice speaking your language.