You can set the higher values to these variables of your virtual host definitions (dependently on how long they need to boot up and become reachable):
If for example, after real host comes to up state, and it takes 5 minutes for virtuals to became up, set the max_check_attempts to 6, check_interval and retry_interval set to 1 (if your interval_lenth variable in nagios.cfg is set to 60), then 6 and 1s will mean minutes. That way, the virtual will be checked six times every minute, and within those 6 minutes it should come up. If it takes 10 minutes for them to come up, then combine just to last slightly more then 10 minutes, for example: max_check_attempts to 6, check_interval and retry_interval set to 2 or max_check_attempts to 12, check_interval and retry_interval set to 1.
Have in mind that those settings will then always be configured so, even if your real host is not down, and one of your virtual host goes down, then it will take 6 or 12 minutes (accordingly to examples I’ve written above) to get the first notification about it.