Em geral, não.
Alguns aplicativos fazem isso como uma medida de conveniência (eles supõem, por exemplo, que você não deseja várias instâncias de um aplicativo media player) e alguns por motivos técnicos. Em geral, é uma má idéia tentar contornar essa regra (e eu não estou ciente de nenhum aplicativo que tente fazer isso) - um desenvolvedor de software pode fazer grandes suposições sobre a acessibilidade de arquivos se ele ou ela tiver a garantia de que nenhum outro processo está usando-os.
Por exemplo, se meu programa garantir que apenas um processo possa ser executado por vez, ele poderá adquirir um bloqueio de leitura / gravação em determinados arquivos do usuário, arquivos de configuração etc. Se um segundo processo tiver permissão para inicializar, ele falhará se tentar adquirir seu próprio bloqueio de leitura / gravação em arquivos já bloqueados. Quando isso acontece, causará falhas e comportamento indefinido em qualquer segunda cópia que começar.
Para conseguir isso, você teria que ter executáveis diferentes para cada cópia que queria executar, e cada um teria que ser recompilado com um ID de processo diferente, presumindo que o programa que você está tentando executar tem um ID exclusivo, que é comum.
A única maneira de isso ser realmente realizado é pela virtualização - mas isso não está realmente executando 2 cópias de um programa - está executando uma cópia em dois computadores separados.