This only works if the internal client doesn't take the savings as margin, _and_ the communication and project management is good enough to overcome the issues that come with outsourcing.
In this case you've now got 3 levels of project management (Canadian govt, IBM CA, IBM India), 2 countries, 2+ languages, and 2 layers of a company who are banned from government contracts in parts of the world for over spending and under delivering.
It might not be organized that way. For instance, it could be that IBM canada basically sold the project and IBM India are the people who would be implementing it. I don't enough about IBM's organization structure to comment on this topic.
In this case you've now got 3 levels of project management (Canadian govt, IBM CA, IBM India), 2 countries, 2+ languages, and 2 layers of a company who are banned from government contracts in parts of the world for over spending and under delivering.