  We consider the complexity of finding weighted homomorphisms from
intersection graphs of curves (string graphs) with $n$ vertices to a fixed
graph $H$. We provide a complete dichotomy for the problem: if $H$ has no two
vertices sharing two common neighbors, then the problem can be solved in time
$2^{O(n^{2/3} \log n)}$, otherwise there is no algorithm working in time
$2^{o(n)}$, even in intersection graphs of segments, unless the ETH fails. This
generalizes several known results concerning the complexity of computatational
problems in geometric intersection graphs. Then we consider two variants of
graph homomorphism problem, called locally injective homomorphism and locally
bijective homomorphism, where we require the homomorphism to be injective or
bijective on the neighborhood of each vertex. We show that for each target
graph $H$, both problems can always be solved in time $2^{O(\sqrt{n} \log n)}$
in string graphs. For the locally surjecive homomorphism, defined in an
analogous way, the situation seems more complicated. We show the dichotomy
theorem for simple connected graphs $H$ with maximum degree 2. If $H$ is
isomorphic to $P_3$ or $C_4$, then the existence of a locally surjective
homomorphism from a string graph with $n$ vertices to $H$ can be decided in
time $2^{O(n^{2/3} \log^{3/2} n)}$, otherwise the problem cannot be solved in
time $2^{o(n)}$, unless the ETH fails. As a byproduct, we obtain several
results concerning the complexity of variants of homomorphism problem in
$P_t$-free graphs. In particular, we obtain the dichotomy theorem for weighted
homomorphism, analogous to the one for string graphs.
