Cage is a decent actor, but his shitty parts are numerous compared to his quality roles. For every Lord of War there is Knowing, Ghost Rider and Wicker man.
Unlike Chris Walken, he seems to shamelessly choose those roles for the paycheck. What I love about Walken is that he seems to never turn down a role (that, and the fact he is hilarious), no matter how crappy the movie is. Cage picks the roles based on the money and he does so in a row. With Walken, it's like a random generator of movies that might turn out either way.