In my mind, both modal dialogs and lightboxes serve the same purpose. It seems that there is a scale of sexy (but javascript-heavy) on one end, and economical (but boring) on the other.
What drives your decisions to use one over the other? Or, is there a better way to ask the user for complex data without navigating to another page?
It depends on your application. If your application is less like a webpage, and more like an application(like Google Docs), modal dialogs make sense when you want to focus user attention for specific tasks.
If your application is a website I would say that you should not confuse the user by having modal dialogs. People are used to going to separate pages, and even through a series of pages to do complex tasks. If it is complex data, I would normally break it into logical steps that decrease the overwhelming-ness of the task. You can use Ajax to make it even cooler, without actually loading a full page.
Modal dialogs should rarely be used. I think a good example of how not to use modal dialogs, is Facebook. Facebook has fancy ajax for things to slide out, slide back. Their interface is very complex, but most of the complexity is hidden.