How would one inject a blockchain fork to the Bitcoin network? For theoretical purposes, how would one inject a blockchain fork in to the Bitcoin network? For example, lets say we have a small chain of blocks prepared in a program that is not a standard client / standard client with modified code. Can one force a client to accept those blocks through getmemorypool RPC command, or will the client not accept any block that would not go at the tip of the current blockchain?

What are the ways of getting a blockchain fork into the Bitcoin network?

EDIT:
I'm not talking about alternative blockchain forks, like SolidCoin, etc., but rather about a fork in the standard Bitcoin chain/testnet chain that would cause some blocks to be orphaned.
Just pass the blocks one at a time to your official bitcoind program, and it will broadcast them to the network.  You don't need to do anything tricky, except for somehow manage to hash faster than everyone else combined.