To avoid such straightforward examples, let us assume that $G$ is a non-abelian finite simple group and $\rho_i \neq 1 $. Surprisingly, such phenomenon is still possible in this case, but quite rare.
It occurs just on $7$$10$ (among $114$$204$) such groups of order less than $2\times 10^7$, namely, $\PSp(4,3)$, $M_{12}$, $A_9$, $\PSp(6,2)$, $M_{23}$, $\PSU(5,2)$,$2.7\times 10^8$ $2F(4,2)'$. See(see the computationcomputations in Appendix.), namely,
$$\PSp(4,3), \ M_{12}, \ A_9, \ \PSp(6,2), \ M_{23}, \ \PSU(5,2), \ 2F(4,2)', \ O_+(8,2), \ ^3D(4,2), \ M_{24}.$$
More specifically, for the alternating groups $A_n$, with $5 \le n \le 20$$5 \le n \le 21$, this phenomenon occurs just for $n=9,16$, with $(\dim(V_1),\dim(V_2))=(8,21), (15,12012)$, respectively.
For the sporadic groups, it occurs for $9$ ones (among $26$), namely,
$$M_{12}, \ M_{23}, \ M_{24}, \ Co_3, \ Co_2, \ Th, \ Co_1, \ F_{3+}, \ M.$$ Warning: This last list differs from (the complement of) the list in this review mentioned by Nick Gill in this comment.
Question: For which non-abelian finite simple groups this phenomenon occurs? more specifically, for which alternating groups $A_n$? if and only if $n$ is a square? and $\dim(V_1) = n-1$?
WeFor general non-abelian finite simple groups (we know that we can avoid $\PSL(2,q)$, see here.):
gap> itsimpnames:=SimpleGroupsIterator= AllCharacterTableNames(60 IsSimple,20000000 true, IsAbelian, false, IsDuplicateTable, false : OrderedBy:= Size);;;
gap> for gnam in itsimpnames do N:=Name(g);; if Size(Nnam)<6<3 or List([1..6]3],i->N[i]>nam[i]) <> "PSL"L2(2," then Print(Namect:=CharacterTable(gnam); Print(nam,"\n"" ",OrderSize(gct)," ",c,"\n");;; Phenomenon(gct);;; fi; od;
...
PSpU4(4,32), M12, A9, PSpS6(6,2), M23, PSUU5(52), 2F4(2)', 2FO8+(42), 3D4(2)', M24, ... the list should be incomplete after, because AllCharacterTableNames contains finitely many simple groups
Computation forFor the alternating group $A_n$, for $5 \le n \le 20$$5 \le n \le 21$:
gap> for n in [5..20]21] do Print(n,"\n");; gct:=AlternatingGroup=CharacterTable("Alternating", n);;; Phenomenon(gct);; od;
...
A9, A16
For the sporadic groups:
gap> spornames:= AllCharacterTableNames(IsSporadicSimple, true, IsDuplicateTable, false : OrderedBy:= Size);;
gap> for nam in spornames do ct:=CharacterTable(nam); Print(nam," ",Size(ct),"\n"); Phenomenon(ct); od;
M12, M23, M24, Co3, Co2, Th, Co1, F3+, M
Script
LoadPackage("ctbllib"); LoadPackage("atlasrep");
Phenomenon:=function(gct)
local irr,r,L,i,j,k;
irr:=Irr(gct);
r:=Size(irr);
for i in [2..r] do
for j in [i..r] do
L:=List([1..r],k->ScalarProduct(irr[i]*irr[j],irr[k]));;
if Number(L,i-> i=0)=r-1 and NumberIsIrreducible(L,i-> i=1irr[i]*irr[j])=1 then
Print([i,j],"\n");;
fi;
od;
od;
end;;