When mapping reads to a reference genome, how is it possible to tell which part of the genome the read is referencing if the genome possibly has the same repeated sequences in different areas? What I mean by this is let's say for the sake of argument that you have a read "AGCTAGCT". If the reference genome has two places where the sequence "AGCTAGCT" is present, how do we tell which one it's coming from? I'm assuming that the length of the read is chosen long enough such that this doesn't happen but perhaps I'm wrong?
As the other answers/comments have covered, some reads will inevitably align to multiple positions in the genome. This can come from a variety of sources, like aligning to repetitive regions of the genome, short read fragments (that will likely match multiple regions in the genome, even if it, in theory, came from a single location), and low base call qualities (the aligner doesn't have lots of confidence aligning it it to one location because it could map to another, with some likely mismatched calls in the read).
This isn't inherently a problem, depending on the analysis you want to do after aligning. In fact, having a single read that is compatible with multiple transcripts is one of the ideas behind the reference index used in kallisto, and the "transcript compatibility counts".
If you want to minimize this effect, two easy ways are to create longer reads on your sequencer, or to use paired-end reads (in theory, both ends should align relatively close to each other, so if one of the mates maps to multiple places, you can borrow from the confidence of the alignment of its mate).
You can't always know exactly where every read originated, even if you use long reads to sequence full-length transcripts (odds are there's at least one transcript that's duplicated in the genome). This is also not exactly a problem, such reads can either be discarded or reported as multimapping.