Right of the bat I can tell you that OSPF would be better to use than BGP. Actually, any internal gateway protocol such as OSPF or EIGRP would be preferable to BGP. Why then does Microsoft and other large companies use BGP? It all has to do with size. Here’s a little bit of an explanation:
As you know, BGP is used on the Internet and it is very good at routing BETWEEN autonomous systems. (An autonomous system is a network or group of networks under a common administration and with common routing policies). If your company network is as big as Microsoft’s, then you will definitely have multiple autonomous systems all over the world, and BGP can be used to route between them. Now more specifically, that’s External BGP.
Internal BGP on the other hand is used to route WITHIN an autonomous system, however, its use is very specific. iBGP is used internally as a mechanism to exchange BGP information between multiple BGP border routers. In other words, it can be said that it forms the transition between an internal IGP (OSPF, EIGRP etc) and BGP on the Internet. iBGP can be used by the border routers of your company to preform routing between multiple ISP connections. This way, the connectivity to the Internet can provide for load sharing and redundancy. You can find out more information about single and multi homed configurations with BGP here: http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13762-40.html
There are many reasons why BGP does not function well as an internal gateway protocol, however, the most crucial is that it is very slow to converge. OSPF and EIGRP and others, on the other hand, are designed for faster convergence and better functionality within the company network.
I hope this has been helpful!