So, do something that's not as good as it could be, or do nothing at all. Your choice.
Let's not pretending a veto would have changed the bill, it would have meant nothing happened, and that would have been far worse than passing a corrupt piece of legislation. We should be blaming congress for the pieces of shit, not Obama. Because guess what, that's where the power of our government lies. If Congress wasn't corrupt, it wouldn't pass corrupt legislation, and no President, regardless of party, could do anything about it. If they veto it, because it's not corrupt, Congress can override him.