It's a question of video support in the various stages of the boot process...
- Early on the firmware (EFI) is handling the video display. Everything up to and including GRUB relies on this support.
- Early in the Linux boot process, the kernel is in control of the display. The kernel has a number of video drivers, including both text-mode and video drivers, some of which are generic and some of which support specific cards. It sounds like the correct one is not being used, or it's been misconfigured in some way.
- Late in the Linux boot process, the X server takes over the display, and X has its own drivers. This is obviously working for you.
Given your symptoms, there's a chance that the kernel's text-mode video support is not working even after you boot the system. Ordinarily, if you hit Ctrl+Alt+F1 (or any other function key through F6), you should see a text-mode login screen. Hitting Alt+F7 (or occasionally F8) should bring you back to X. If this doesn't work, and you instead see a blank display, then your text-mode video support is bad. There are a number of possible more specific causes, like a lack of a video driver, the wrong video port being active (built into the motherboard vs. an add-on card, for instance), and the video driver doing something wrong for initializing the video card. You may be able to fix this by adding kernel options, but details depend on your video hardware and maybe even your computer. This question and answer provide suggestions for solutions to a more serious variant on this problem, and they might help you, too.
A less severe type of problem might be partially fixed by removing the quiet splash options from the kernel command line. You can do this in GRUB by hitting e to edit an entry, then removing quiet splash from the kernel options line. This variant assumes that the problem is just in the kernel's use of graphics mode and that text mode works fine. If this is the cause, then you'll probably be able to log in using text mode by hitting Ctrl+Alt+F1, and removing quiet splash at boot will result in a verbose text-mode boot rather than the boot with the Ubuntu logo. As with the previous scenario, adding kernel options might enable the regular logo to appear, but which options you'd want to use depends on your hardware and perhaps other factors. As I'm not an encyclopedia of solutions to these problems, I can't offer specific suggestions on what to try -- but the above linked-to question and answers might be helpful.
One more thing to note is that there are two or three sets of X drivers for Nvidia chipsets. Which one you use affects not just X, but kernel drivers, because some Nvidia drivers (especially the proprietary ones) require kernel support, which in turn means that the kernel needs certain drivers be active and others not. Thus, changing your X drivers can influence the behavior of the system before X even starts.
Overall, video support in Linux is a pretty complex web!